I'm thinking that the SOAPAction header should be "" instead of empty.
I've just changed it in HttpSoapInOutBinding, so you may want to test it once agina
and it will hopefully work better.

Guillaume

[EMAIL PROTECTED] wrote:

Guillaume,

Thanks for your help, but things are still not working - the
VersionMismatchException persists.

One thing that I've noticed is that the HttpConnector sets the response
almost identically to the response returned during a direct service call,
but the HttpSoapConnector's response is significantly different (even after
the addition of the SOAPAction). Is there a reason why this is the case? I
think that our server is looking for some other information in the header to
be echoed back - and as its not finding that information its throwing an
error.

/jonathan

-----Original Message-----
From: Guillaume Nodet [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 21, 2005 1:56 AM
To: [email protected]
Subject: Re: [servicemix-user] Problems invoking a web service with SOAP


I have modified the HttpSoapInOutBinding component to set an empty SOAPAction header.

Cheers,
Guillaume Nodet

[EMAIL PROTECTED] wrote:

Guillaume,

Good news - the data being returned from the SaajComponent
looks correct
now; the "d" namespace is included.

But...and there's always a but...I am seeing another issue with the
HttpSoapConnector. On the return, the following exception is
being thrown by
the client:

Exception in thread "main"
com.idoox.soap.VersionMismatchException: Unable
to read server response. Server returned status code: 200 (OK)
(Content-type:text/xml; charset=UTF-8) Incoming message is
not SOAP 1.1 nor
SOAP 1.2
  at
com.systinet.wasp.soap.MessageSourceImpl.init(MessageSourceIm
pl.java:203)
  at
com.systinet.wasp.soap.MessageSourceFactoryImpl.getMessageSou
rce(MessageSour
ceFactoryImpl.java:36)
  at
com.systinet.wasp.client.XMLInvocationHelperImpl._receive(XML
InvocationHelpe
rImpl.java:664)
  at
com.systinet.wasp.client.XMLInvocationHelperImpl._receive(XML
InvocationHelpe
rImpl.java:617)
  at
com.systinet.wasp.client.XMLInvocationHelperImpl._call(XMLInv
ocationHelperIm
pl.java:145)
  at
com.systinet.wasp.client.XMLInvocationHelperImpl.call(XMLInvo
cationHelperImp
l.java:77)
  at
org.systinet.wasp.client.XMLInvocationHelper.call(XMLInvocati
onHelper.java:1
8)
at
com.systinet.wasp.rpc.WaspCallImpl.invoke(WaspCallImpl.java:492)
at
com.systinet.wasp.rpc.WaspCallImpl.invoke(WaspCallImpl.java:450)
at
com.systinet.wasp.client.ClientProxy._invoke(ClientProxy.java:456)
at
com.systinet.wasp.client.ClientProxy.invoke(ClientProxy.java:109)
  at $Proxy63.getPerson(Unknown Source)
  at com.cexp.ws.testclient.TestClient.main(TestClient.java:40)

This looked suspicious, so I looked at the Http response
traffic for the bus
(HttpSoapConnector -> SaajConnector) mediated call:

HTTP/1.1 200 OK
Date: Wed, 21 Dec 2005 00:40:27 GMT
Server: Jetty/5.1.6 (Linux/2.4.21-37.ELsmp i386 java/1.5.0_05
Connection: close
Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <soap:Body><wn2:getPersonResponse
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";
xmlns="http://www.w3.org/2000/xmlns/";
xmlns="http://www.w3.org/2000/xmlns/";
xmlns="http://www.w3.org/2000/xmlns/";
xmlns="http://www.w3.org/2000/xmlns/";
xmlns="http://www.w3.org/2000/xmlns/";
xmlns:d="http://www.w3.org/2001/XMLSchema";
xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
xmlns:wn0="http://idoox.com/interface";
xmlns:wn1="http://systinet.com/soap-jta/";
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";>
<wn2:response
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";
xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
i:type="wn2:Person">
      <wn2:description
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";
xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
i:type="d:string">Desktop customizer
(1135125628107)</wn2:description>
      <wn2:firstName
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";
xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
i:type="d:string">Jonathan</wn2:firstName>
<wn2:lastName
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";
xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
i:type="d:string">Edwards</wn2:lastName>
    </wn2:response>
  </wn2:getPersonResponse>
</soap:Body>
</soap:Envelope>

Sure enough, there is no SOAPAction. The Http response
traffic from the
direct web service call looks like this:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build:
CVSTag=JBoss_4_0_3_SP1
date=200510231054)/Tomcat-5.5
Server: Systinet Server for Java/6.0 (Java/1.5.0_05;
Linux/2.4.21-37.ELsmp;
build SSJ-6.0-20050817-0016)
SOAPAction: ""
X-WASP-Message-ID: 14e-KvQaIwFQW/q/c5IV2rT9bA==
Content-Type: text/xml;charset=UTF-8
Date: Wed, 21 Dec 2005 00:55:51 GMT
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<e:Envelope xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:d="http://www.w3.org/2001/XMLSchema";
xmlns:i="http://www.w3.org/2001/XMLSchema-instance";
xmlns:wn0="http://idoox.com/interface";
xmlns:wn1="http://systinet.com/soap-jta/";
xmlns:wn2="http://systinet.com/wsdl/com/cexp/ws/test/";>
<e:Body>
  <wn2:getPersonResponse>
    <wn2:response i:type="wn2:Person">
      <wn2:description i:type="d:string">Desktop customizer
(1135126551853)</wn2:description>
      <wn2:firstName i:type="d:string">Jonathan</wn2:firstName>
      <wn2:lastName i:type="d:string">Edwards</wn2:lastName>
    </wn2:response>
  </wn2:getPersonResponse>
</e:Body>
</e:Envelope> I think that we are almost there. The issue would now seem
to be with the
HttpSoapConnector or the HttpSoapInOutBinding.  I think that the only
modification needs to be altering this component to set the
HttpResponse
header item SOAPAction="".

Please let me know your thoughts.

/jonathan







Reply via email to