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

Reply via email to