cancel
Showing results for 
Search instead for 
Did you mean: 

Java proxy

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Do these notes help?

608517

784013