cancel
Showing results for 
Search instead for 
Did you mean: 

Axis Adapter - invalid message type: class org.apache.axis.MessageContext

lukas_rampa
Explorer
0 Kudos

Hallo to all,<br><br>

trying to use Sender channel of SOAP Axis Adapter. We are on XI ADAPTER FRAMEWORK 7.10, SP8, Patch Level 0.<br><br>

The channel is created with defaults, I have just selected Servlet as Transport Protocol, did not touch modules setup.<br><br>

When I send the SOAP message to the channel, I get following SOAP Fault in response:<br><br>

<pre>invalid message type: class org.apache.axis.MessageContext

at com.sap.aii.adapter.axis.ra.ModuleProcessorEngine.invoke(ModuleProcessorEngine.java:144)

at com.sap.aii.adapter.axis.web.ServletReceiverCore.doPost(ServletReceiverCore.java:302)

at com.sap.aii.adapter.axis.web.MessageServlet.doPost(MessageServlet.java:392)

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

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

at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)

at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:32)

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

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

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

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

at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)

at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)

at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)

at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)

at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)

at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:295)

at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222)

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

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

<pre><br><br>

It seems like that Axis type of the message (MessageContext) leaks to the native XI components (some module?).<br><br>

Have you ever met this situation?<br><br>

Thanks, Lukas

Edited by: Lukas Rampa on Sep 8, 2009 11:47 AM

Accepted Solutions (0)

Answers (1)

Answers (1)

lukas_rampa
Explorer
0 Kudos

Finally found the reason:<br>

even though I was connecting to the correct URL (<span style="font-family: Monospace;">http://<fqdn>:<port>/<span style="font-weight: bold;">XIAxisAdapter</span>/MessageServlet?senderService=<service_name>&receiverService=&interface=<interface>&interfaceNamespace=<interface_namespace></span>), the module chain of another communication channel was actually used (this was standard SOAP adapter).<br>

It seems, that the MessageServlet of Axis adapter first searches for appropriate Sender agreement according to URL parameters, finds out the channel there and then hands over the control to the module chain of this channel.<br>

In our case there was the SOAP (non-Axis) channel configured in sender agreement, thus the Axis message was sent to wrong module chain...<br>

Lukas