Skip to Content
0
Former Member
Feb 10, 2009 at 11:23 AM

XI3 SOAP sender and Receiver

22 Views

Hi

I am stuck with a connecting to scenarios using SOAP channel. In short there is one business scenario that based on some conditions must start other scenarios (each one built around one business process). I am trying to send asynchronous SOAP message within the same XI and treat it as a External XI system to start another Business Scenario (using XI adapter does not work as the system discovers the message as being in a loop).

Everything would be fine if there would be 1 target scenarios but I have 1:n. For asyncronous transport I have defined different Message Interfaces to be used for on each case. So XI should determine the right business process based on the message interface that uses the communication channel.

So I have configured a SOAP sender and a receiver channel. As I understood from SOAP adapter FAQ I checked "Use Encoded Headers" and "Use Query String" for both - sender and receiver channel. And ofcourse receiver channel is pointed to http://:/XISOAPAdapter/MessageServlet?channel=:{system name}:{receiver channel name} but when I start the initiating scenario the asyncronous message is sent of but nobody is catching it.

In RWB Message monitoring / adapter engine I found the the message receives an exeception:

SOAP: response message contains an error XIServer/UNKNOWN/ModuleUnknownException - 
com.sap.aii.af.mp.module.ModuleException: either no channelID 
specified or no channel found for the specified party, service, and channel name, 
MessageServlet(Version $Id: //tc/aii/30_REL/src/_adapters
/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#15 $) at 
com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:427) 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:401) at 
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl....
handleRequest(HttpHandlerImpl.java:266) at 
com.sap.engine.services.httpserver.server.RequestAnalizer....
startServlet(RequestAnalizer.java:387) at 
com.sap.engine.services.httpserver.server.RequestAnalizer....
startServlet(RequestAnalizer.java:365) at 
com.sap.engine.services.httpserver.server.RequestAnalizer....
invokeWebContainer(RequestAnalizer.java:944) at 
com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266) at 
com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at 
com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160) 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)

Any ideas... how to make XI to send SOAP messages so that the same XI system would be able to pick them up?

Or what have I done wrong?

Best wishes,

Heiko