Hi List,

Any insight here is welcome. The WS is NOT axis based, only the client.

The server WS used to return (older server):

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";><SOAP-ENV:Bod
y>
<MYSERVICE.Response xmlns="urn:my:own:space">
<DATA>
<item>
<STUFF>SWPKGBUILDER</STUFF>
</item>
</DATA>
<MOREDATA>
<item>
<SOMETHING>THIS</SOMETHING>
</item>
</MOREDATA>
</MYSERVICE.Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

And this was OK with my AXIS 1.1 client, but not with my 1.2 Final
client.

The upgraded server now returns (newer server):

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";><SOAP-ENV:Bod
y>
<cfr:MYSERVICE.Response xmlns:cfr="urn:my:own:space">
<DATA>
<item>
<STUFF>SWPKGBUILDER</STUFF>
</item>
</DATA>
<MOREDATA>
<item>
<SOMETHING>THIS</SOMETHING>
</item>
</MOREDATA>
</cfr:MYSERVICE.Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

So why would an Axis 1.2 client balk at the first response whereas 1.1
client was fine? What I did was create the AXIS 1.2 client using
WSDL2Java on the newer WSDL and then pointed it at the older service.
Note, that the function being called did not change only the version of
the server hosting the function/WS. The error I get from 1.2Final is:

{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException:
SimpleDeserializer encountered a child element, which is NOT expected,
in something it was trying to deserialize.

I looked at the autogenerated WSDLs provided by the server (again, not
AXIS) and the only difference is that the old WSDL uses <xsd:sequence>
and <xsd:length> tags whereas the newer WSDL uses <xsd:all> and
<xsd:maxLength> instead.

Thanks!

Thunder

Reply via email to