cancel
Showing results for 
Search instead for 
Did you mean: 

Using receiver SOAP Adapter

Former Member
0 Kudos

Hi,

I have the following Scenario:

I want to send an AuthenticateUSer method request to a WebService using SOAP receiver adapter synchronusly, and receive the Response.

I've found the following error in monitoring:

<i> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Call Adapter

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapter</SAP:Category>

<SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>soap fault: Server was unable to process request. --> Object reference not set to an instance of an object.</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error></i>

Any ideas?

How do I say to the SOAP adapter wich method I want to Invoke?

Thanks and Regards.

Accepted Solutions (1)

Accepted Solutions (1)

moorthy
Active Contributor
0 Kudos

Hi,

1) Check the wsdl message,mapped message (input to the SOAP Adapter)

2) Check the Target URL in the SOAP Reciever Adapter. Also SOAP Receiver Adapter Parameters.

http://help.sap.com/saphelp_nw2004s/helpdata/en/29/5bd93f130f9215e10000000a155106/frameset.htm

3) Try to test the WebService -

/people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services

4) Check these

<i>How do I say to the SOAP adapter wich method I want to Invoke?</i>

You need to mention the Target URL i.e URL of the WSDL file.

Hope this helps,

REgards,

Moorthy

Message was edited by: Krishna Moorthy P

Former Member
0 Kudos

Hi Moorthy,

I have to create one diferent wsdl message for each method I want yo invoke?

Do I really need those wdsl files?The only way to create those files is in the Builder->Tools->Create Web Service¿

Sorry for my unknowledge...

Thanks and REgards.

moorthy
Active Contributor
0 Kudos

HI,

<i>I have to create one diferent wsdl message for each method I want yo invoke?</i>

Not required.. It is based on the Application written in the WebService.

These will help you to acheieve the same..

/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi

/people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1

/people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2

Then error is probably , the message given to the SOAP Adapter i.e Webservice is incorrect..

Hope this helps,

Regards,

Moorthy

Former Member
0 Kudos

Hi Moorthy,

I've test the WebService with WebService Studio 2.0 and it is working.

I've test the SOAP Adapter with

http://<host>:<port>//XISOAPAdapter/HelperServlet?action=GetChannelInfo&channelID=<Object%20version%...;

and others and found the following log:

<i><?xml version="1.0" ?>

- <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<faultcode>SOAP:Server</faultcode>

<faultstring>Server Error</faultstring>

- <detail>

- <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">

<context>XIAdapter</context>

<code>ADAPTER.SOAP_EXCEPTION</code>

- <text>

- <![CDATA[

com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Channel object with Id Channel:<Object version ID> not available in CPA Cache.

at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getCPAObject(AbstractLookupManager.java:172)

at com.sap.aii.af.mp.soap.web.HelperServlet.processGetChannelInfo(HelperServlet.java:455)

at com.sap.aii.af.mp.soap.web.HelperServlet.doGet(HelperServlet.java:131)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

]]>

</text>

</s:SystemError>

</detail>

</SOAP:Fault></i>

In RWB, the SOAP Adapter Monitoring looks green, and in http://<host>:<port>//XISOAPAdapter/MessageServlet

<i>Message Servlet is in Status OK

Status information:

Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#11 $) bound to /MessageServlet

Classname ModuleProcessor: null

Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean

Lookupname for remoteModuleProcessorLookupName: null

ModuleProcessorClass not instantiated

ModuleProcessorLocal is Instance of com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0

ModuleProcessorRemote not instantiated</i>

Is the Adapter working properly?

Thanks and Regards.

Answers (0)