on 05-04-2007 5:39 PM
Hi,
I have created a java server proxy with inbound synchronous interface. The code iside the java proxy has a simple logic of getting the values and concatenating them into a string and pass it to a target URL. Now when I tried to execute this scenario from XI, I see this in the logs
at com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundRemote4ObjectImpl0.invokeMethod(AbstractProxyInboundRemote4ObjectImpl0.java:407)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at com.sap.engine.services.rmi_p4.reflect.LocalInvocationHandler.invokeInternal(LocalInvocationHandler.java:78)
at com.sap.engine.services.rmi_p4.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:50)
at $Proxy279.invokeMethod(Unknown Source)
at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:62)
at java.lang.reflect.Method.invoke(Method.java:391)
at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187)
at $Proxy281.invokeMethod(Unknown Source)
at com.sap.aii.proxy.xiruntime.core.XmlProxyJ2EE.call(XmlProxyJ2EE.java:175)
at com.sap.aii.proxy.xiruntime.core.XmlProxy$ProxyBeanCaller.call(XmlProxy.java:225)
at com.sap.aii.proxy.xiruntime.core.XmlProxy.processRequest(XmlProxy.java:194)
at com.sap.aii.proxy.xiruntime.core.XmlInbound.processRequestMessage(XmlInbound.java:126)
at com.sap.aii.proxy.xiruntime.core.XmlInbound.processMessage(XmlInbound.java:83)
at com.sap.aii.proxy.xiruntime.sbeans.JPRBean.onMessage(JPRBean.java:158)
at com.sap.aii.proxy.xiruntime.sbeans.JPRLocalLocalObjectImpl0.onMessage(JPRLocalLocalObjectImpl0.java:175)
at com.sap.aii.af.ra.ms.impl.ServicesImpl.deliver(ServicesImpl.java:306)
at com.sap.aii.adapter.xi.ms.XIEventHandler.onDeliver(XIEventHandler.java:995)
at com.sap.aii.af.ra.ms.impl.core.queue.RequestConsumer.onMessage(RequestConsumer.java:118)
at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(AccessController.java:215)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
<b>Caused by: java.lang.NullPointerException
at com.payflowpro.authtest.XMLRespMIIB_PortTypeImpl.xMLRespMIIB(XMLRespMIIB_PortTypeImpl.java:128)
at com.payflowpro.authtest.XMLRespMIIB_PortTypeBean.invokeMethod(XMLRespMIIB_PortTypeBean.java:34)
at com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundRemote4ObjectImpl0.invokeMethod(AbstractProxyInboundRemote4ObjectImpl0.java:387)</b>
Can any body say why it throws a null pointer exception, I feel that the values are not coming into the proxy from the messaging system. I don't see any other possibility. If any body has any idea why this is happening please give me some pointers.
The code which I have written looks like this :
package ebayApiPaypalAPI.authorization._100;
import com.Verisign.payment.PFProAPI;
public class DoAuthorizationSyncIBMI_PortTypeImpl extends com.sap.aii.proxy.xiruntime.core.AbstractProxy implements DoAuthorizationSyncIBMI_PortType {
public ebayApiPaypalAPI.authorization._100.XMLPayResponseAuthorizationDT_Type doAuthorizationSyncIBMI(ebayApiPaypalAPI.authorization._100.XMLPayRequestAuthorizationDT_Type xMLPayRequestAuthorizationMT) throws com.sap.aii.proxy.xiruntime.core.SystemFaultException, com.sap.aii.proxy.xiruntime.core.ApplicationFaultException{
// throw new RuntimeException();
String hostaddress="test-payflow.verisign.com";
String HostPort="443";
String TimeOut="30";
String ProxyAddress="";
String ProxyPort="0";
String userName=xMLPayRequestAuthorizationMT.getRequestAuth().getUserPass().getUser();
String userPass=xMLPayRequestAuthorizationMT.getRequestAuth().getUserPass().getPassword();
String uservendor=xMLPayRequestAuthorizationMT.getRequestData().getVendor();
String partner=xMLPayRequestAuthorizationMT.getRequestData().getPartner();
String userCity=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().getBillTo().getAddress().getCity();
String userStreet=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().getBillTo().getAddress().getStreet();
String userState=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().getBillTo().getAddress().getState();
String userZip=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().getBillTo().getAddress().getZip();
String userAmount=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().getTotalAmt();
//String userAmount=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().getTotalAmt();
//String userAmount=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getInvoice().
String userCredit=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getTender().getCard().getCardType();
String userCreditNum=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getTender().getCard().getCardNum();
String userCreditExpDate=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getTender().getCard().getExpDate();
String userCreditNameCard=xMLPayRequestAuthorizationMT.getRequestData().getTransactions().getTransaction().getAuthorization().getPayData().getTender().getCard().getNameOnCard();
//String ParamList="VENDOR="uservendor"&PARTNER="partner"&"userCity"&"userStreet"&" userState"&"userZip"&""&"userAmount"&"userCredit+"&" userCreditNum"&"userCreditExpDate"&"+userCreditNameCard;
String ParamList="TRXTYPE=A&""USER="userName"&PWD="userPass"&VENDOR="uservendor"&PARTNER="partner"&CITY="userCity"&STREET="userStreet"&STATE="userState"&ZIP="userZip"&AMT="userAmount"&"userCredit"&ACCT="userCreditNum"&EXPDATE="userCreditExpDate"&FNAME="userCreditNameCard"&VERBOSITY=""MEDIUM";
PFProAPI pn = new PFProAPI();
pn.SubmitTransaction(ParamList);
pn.CreateContext(hostaddress,443,30,ProxyAddress,0,userName,userPass);
String rc=pn.SubmitTransaction(ParamList);
//String rc1="TestPassword";
pn.DestroyContext();
pn.SetCertPath("certs");
//String userTransaction=xMLPayRequestAuthorizationMT.ge
// xMLPayRequestAuthorizationMT.getRequestData().getTransactions().
ebayApiPaypalAPI.authorization._100.XMLPayResponseAuthorizationDT_Type returnXML=new ebayApiPaypalAPI.authorization._100.XMLPayResponseAuthorizationDT_Type();
XMLPayResponseAuthorizationDT_Type.ResponseData_Type responseData=new XMLPayResponseAuthorizationDT_Type.ResponseData_Type();
//responseData.s
responseData.setPartner(rc);
responseData.setVendor(uservendor);
//responseData.setTransactionResults(XMLPayResponseAuthorizationDT_Type.ResponseData_Type,)
returnXML.setResponseData(responseData);
return returnXML;
}
}
Thanks and Regards
Arvind
Do these notes help?
608517
784013
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
80 | |
24 | |
11 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.