14 years ago
MockService cannot handle MTOM/XOP SOAP 1.2 requests
I have set up a MockService to handle MTOM/XOP SOAP 1.2 requests that work fine on a normal SOAP endpoint. If I disable MTOM marshalling, the service correctly inteprets the request as SOAP 1.2 and handles the request just fine. Otherwise, I get an exception at SoapUI. This is the payload sent to SoapUI's MockService:
This uses the XOP packaging using MIME. It appears that SoapUI 4.0.1 is confused by the MIME boundaries and fails to parse the request. This is the exception that is logged on SoapUI:
------=_Part_0_6705311.1317911686384
Content-Type: application/xop+xml; charset=utf-8; type="application/soap+xml"
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header/><env:Body>...</env:Body></env:Envelope>
------=_Part_0_6705311.1317911686384--
This uses the XOP packaging using MIME. It appears that SoapUI 4.0.1 is confused by the MIME boundaries and fails to parse the request. This is the exception that is logged on SoapUI:
Thu Oct 06 10:34:46 EDT 2011:ERROR:com.eviware.soapui.impl.wsdl.mock.DispatchException: Missing operation for soapAction [] and body element [null] with SOAP Version [SOAP 1.1]
com.eviware.soapui.impl.wsdl.mock.DispatchException: Missing operation for soapAction [] and body element [null] with SOAP Version [SOAP 1.1]
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchPostRequest(WsdlMockRunner.java:318)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:375)
at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:714)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)