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(MessageSourceImpl.java:203)
    at
com.systinet.wasp.soap.MessageSourceFactoryImpl.getMessageSource(MessageSour
ceFactoryImpl.java:36)
    at
com.systinet.wasp.client.XMLInvocationHelperImpl._receive(XMLInvocationHelpe
rImpl.java:664)
    at
com.systinet.wasp.client.XMLInvocationHelperImpl._receive(XMLInvocationHelpe
rImpl.java:617)
    at
com.systinet.wasp.client.XMLInvocationHelperImpl._call(XMLInvocationHelperIm
pl.java:145)
    at
com.systinet.wasp.client.XMLInvocationHelperImpl.call(XMLInvocationHelperImp
l.java:77)
    at
org.systinet.wasp.client.XMLInvocationHelper.call(XMLInvocationHelper.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