You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by "Lukens, Bruce" <br...@lmco.com> on 2004/03/25 19:15:26 UTC

Interoperability problem with Axis C++ client

I am not sure if I am addressing this issue to the right newsgroup, but I hope someone might be able to help me.

I have an Axis generated C++ static binding client that fails to deserialize SOAP messages containing Complex types. Created a Java Web Service that returns a Java Bean that consists of three strings. 
The following is the Axis Generated WSDL complex type:
<complexType name="Sv04BalancingResults">
<sequence>
<element name="cedarpError" nillable="true" type="xsd:string"/>
<element name="numberValidationErrors" nillable="true" type="xsd:string"/>
<element name="resultsDir" nillable="true" type="xsd:string"/>
</sequence>
</complexType>

Successfully accessed Web Service utilizing a Java static binding client, but C++ client fails in the Axis C++ Wrapper Class Generator
that handles the parameters and wrapper methods to manipulate the results.
In the Axis_DeSerialize_Sv04BalancingResults(Sv04BalancingResults* param, IWrapperSoapDeSerializer *pIWSDZ) method
the following returns null: "param->cedarpError = pIWSDZ->GetString(); " , which causes the client to fail.
It appears from debugging that the type is being set "USER_TYPE" instead of "XSD_STRING".
Verified SOAP request and response message via tcpmon and everything appears to be correct. The following SOAP body contains the message that the C++ client fails to deserialize:
<soapenv:Body>
<ns1:getSv04BalancingErrorsResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Sv04Balancing">
<getSv04BalancingErrorsReturn href="#id0"/>
</ns1:getSv04BalancingErrorsResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Sv04BalancingResults" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://WsSv04Balancing.CedarpApi">
<cedarpError xsi:type="xsd:string" xsi:nil="true"/>
<numberValidationErrors xsi:type="xsd:string">4</numberValidationErrors>
<resultsDir xsi:type="xsd:string">test.xml</resultsDir>
</multiRef>
</soapenv:Body>

The following contains a portion of the Axis generated WSDD deploy file :
<typeMapping
xmlns:ns="http://WsSv04Balancing.CedarpApi"
qname="ns:Sv04BalancingResults"
type="java:CedarpApi.WsSv04Balancing.Sv04BalancingResults"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
Utilizing axis-1_1 for Web Service deployment in the jakarta-tomcat-4.1.29 container with j2sdk1.4.2. Static binding client created using axis-c-1-0-win32 and WSDL specifies RPC/encoded SOAP binding. 
I have no prior web services experience, so any help would be greatly appreciated. Please let me know if you need any additional information. 
Does anyone know if this issue is resolved in the 1.1 critical bug fixes?

-Thanks