cancel
Showing results for 
Search instead for 
Did you mean: 

Could not post a SOAP request to the interface

Former Member
0 Kudos

Hi All,

I have a Scenario Web service --> XI --> File

I configured SOAP Sender Adapter to send a soap request to the Web service.

Integration server SOAP inbound channel is given as below in defining the web service :

http://pt01:50000/XISOAPAdapter/MessageServlet?Channel=:SoapSenderService:SoapSender

Business service is : SoapSenderService

Communication channel name: SoapSender

<b>when i try to send a sop request to the Interface via XML SPY tool I get the following error</b>:

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

<SOAP:Body>

<SOAP:Fault>

<faultcode>SOAP:Server</faultcode>

<faultstring>Server Error</faultstring>

<detail>

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

<context>XIAdapter</context>

<code>Exception</code>

<text><![CDATA[

java.lang.Exception: invalid channel (party:service:channel) = <null>

at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:493)

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

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

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

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

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

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

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

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

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

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

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

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

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:94)

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

]]></text>

</s:SystemError>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

Can some one tell me if there is any way to see the WSDL through an URL ( generated run time)

My message servlet status is Fine.

I get a status ok when I try this Url in the browser:

http://pt01:50000/XISOAPAdapter/MessageServlet?Channel=:SoapSenderService:SoapSender

Response: Message Servlet is in Status OK

Status information:

Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#5 $) 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

Can any one please help me.

Regards,

Meher

Accepted Solutions (1)

Accepted Solutions (1)

bhavesh_kantilal
Active Contributor
0 Kudos

Meher,

Can you try using the HTTP port instead of the J2EE port.

Also, take a look at this blog and article,

/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873...

Regards,

Bhavesh

Former Member
0 Kudos

Hi All,

Thnaks for the help.

One thing I have noticed in the adapter monitor.

SOAP adapter is blured. I cannot click on the soap adapter link from the monitor unlike file,jms and jdbc .

Does this mean soap adapter is not installed on my machine?

Regards,

Meher

bhavesh_kantilal
Active Contributor
0 Kudos

Meher,

When you adapter is in Grey, it implies, this adapter has never had a message processing before . The first time any message from your SOAP adapter hits XI, it will become red or green as per requirement.

Regards,

Bhavesh

Former Member
0 Kudos

Thanks bhavesh.

Adapter status is not only Grey ,I donot get any link pointed when i put my mouse on adapter name.

Is this a problem?

Ex:

000 SOAP

When I have my mouse on the adapter name , I donot see any kind of a link unlike other adapters like File,jdbc,Jms.

Thanks,

Meher

bhavesh_kantilal
Active Contributor
0 Kudos

Meher,

It is not an issue. Like I told, once the first message flows using this adapter, things will be red or green with the link as needed.

Regards,

Bhavesh

Former Member
0 Kudos

Hi All,

Thanks all for your replys.

In the same Web service --> XI --> FIle Scenario.

When I post an Xml messsage of type Outbound Interface with Quality of Service : Best Effort , My message is successfully processed.

But Xml Spy shows an error messages saying Spy could not post soap request.

<b>Exception is as follows:</b>

<SOAP:Fault>

<faultcode>SOAP:Server</faultcode>

<faultstring>failed to call the adapter engine</faultstring>

<detail>

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

<context>XIAdapter</context>

<code>DeliveryException</code>

<text><![CDATA[

com.sap.aii.af.mp.module.ModuleException

at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:697)

at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103)

at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:221)

at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)

at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:543)

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

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

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

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

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

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

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

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

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

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

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

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

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:94)

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

Caused by: com.sap.aii.messaging.srt.BubbleException: failed to call the adapter engine [null "null"]; nested exception caused by: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_MAPPINGPROGRAM_FOUND:

at com.sap.aii.af.mp.soap.ejb.AFCallerApplication.perform(AFCallerApplication.java:122)

at com.sap.aii.messaging.srt.ApplicationBubble.onMessage(ApplicationBubble.java:29)

at com.sap.aii.messaging.srt.ExtensionBubble.onMessage(ExtensionBubble.java:56)

at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:576)

... 20 more

Caused by: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:NO_MAPPINGPROGRAM_FOUND:

at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:366)

at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:123)

at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:419)

at com.sap.engine.frame.core.thread.Task.run(Task.java:60)

at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:73)

at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:145)

]]></text>

</s:SystemError>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

Please let me know if some thing is wrong from my side?

Regards,

Meher

former_member206604
Active Contributor
0 Kudos

Hi,

Actually it is because XML SPY is sending it as Sync call and its expecting a respose back. Where as your scenario is File so it is a Async scenario. From you error message I can see that "NO_MAPPINGPROGRAM_FOUND", so I believer there is no reponse mapping found for that. Check out ur SXMB_MONI by setting the LOGGING = 1 in SXMB_ADM. You will find a error while response. So do a Ascyn call and why dont you use SOAP Client.

Thanks,

Prakash

moorthy
Active Contributor
0 Kudos

Hi,

<i>When I post an Xml messsage of type Outbound Interface with Quality of Service : Best Effort , My message is successfully processed.</i>

>>>Are you planning to do Synchrnous Scenario ? Because , you have mentioned Quality of Service : Best Effort. It is nothing but Synchrnous.

In your case, as your scneario is Webservice->XI->File , file system is not supporting Best Effort as a Qualituy of service. Instead of this use Quality of Service as "Exactly Once".

Now the error tells me that "No Mapping Program found"..

Check is the mapping is in place and actiavted and working fine ..test this with IntegratioN Repository Test Tab.

Hope this helps,

Regards,

Moorthy

Former Member
0 Kudos

Hi All,

Thanks for your answers.

I made QOS to Exactly Once But still the message got processed synchronously. It did not wait in the inbound queues for processing.

May I know when to use Best Effort and when Exactly once at a design and a requirement level?

Regards,

Meher

former_member206604
Active Contributor
0 Kudos

Hi,

<i>>>>I made QOS to Exactly Once But still the message got processed synchronously. It did not wait in the inbound queues for processing.</i>

No you will find it in the queue and that is no called Sync.

<i>>>>May I know when to use Best Effort and when Exactly once at a design and a requirement level?</i>

Best Effort is for Sync process

Exactly one is for Async process

For example :

Lets assume you are sending a email and you cannot expect a reply immediately after clicking Send button. You will just get a message called Mail sent. This is called Async = Exactly Once

You are requesting a URL say www.sdn.sap.com you are getting the page immediately in your browser. That is you are getting a response for the request you made. This is called Sync = Best Effort

Simillarly when you are working with a File you cannot expect a response form a file so it cannot be Sync and simillarly with IDOC and Mails.

Where as in case of RFC, HTTP, SOAP you can get a response for the request you made.

Hope this make clear...

Thanks,

Prakash

Answers (1)

Answers (1)

Shabarish_Nair
Active Contributor
0 Kudos

For testing XI exposed WS - Ref: /people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services