I have a problem with trying to invoke an axis2 web service (living inside tomcat) from a ODE BPEL process living inside ServiceMix. Although there was a small bug (that has been successfully patched) im now getting somekind of mismatch between SOAP messages that are sent. If from a completely external java client i send the following:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <echo xmlns="http://ws.test"> <input>FROM JAVA</input> </echo> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Then i get the correct the following response: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <ns:echoResponse xmlns:ns="http://ws.test"> <ns:return>Echo: FROM JAVA</ns:return> </ns:echoResponse> </soapenv:Body> </soapenv:Envelope> If however i change the SOAP namespace from "http://schemas.xmlsoap.org/soap/envelope/" to "http://www.w3.org/2003/05/soap-envelope" then i get the following response: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soapenv:Header> <wsa:Action>http://www.w3.org/2005/08/addressing/soap/fault</wsa:Action> </soapenv:Header> <soapenv:Body> <soapenv:Fault> <faultcode>SOAP-ENV:VersionMismatch</faultcode> <faultstring>Transport level information does not match with SOAP Message namespace URI</faultstring> <detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> Also, when i go back to servicemix and turn the logging level to debug so i can see the raw requests/responses, i see a request that is something like this: POST /axis2/services/EchoService HTTP/1.1 [\r][\n] Content-Type: text/xml;charset=UTF-8[\r][\n] Content-Length: 216[\r][\n] SOAPAction: ""[\r][\n] User-Agent: Jakarta Commons-HttpClient/3.0[\r][\n] Host: localhost:8080[\r][\n] [\r][\n] <?xml version='1.0' encoding='UTF-8'?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Body><echo xmlns="http://ws.test">[\n] [0x9][0x9][0x9][0x9][0x9][0x9][0x9]<input>Some INPUT</input>[\n] [0x9][0x9][0x9][0x9][0x9][0x9]</echo></env:Body></env:Envelope> HTTP/1.1 500 Internal Server Error[\r][\n] Content-Type: text/xml;charset=UTF-8[\r][\n] Transfer-Encoding: chunked[\r][\n] Date: Mon, 01 Jun 2009 15:22:33 GMT[\r][\n] Server: Apache-Coyote/1.1[\r][\n] Connection: close[\r][\n] 1 f 4 [\r] [\n] And exactly the same incorrect response from the axis2 server. So my question is how i can either make ServiceMix/ODE and Tomecat/axis2 speak the same version of SOAP? Any help would be greatly appreciated and i have deadlines fast approaching! Thanks, as alaways, in advance, Ian Harrigan
