Hi List
I have problems to deserialize the object
'AxisNode' which contains some Strings and 'AxisPassword[]' and 'AxisFiles['] and 'long[']
I get all the Strings and the 'long[]' correct, but missing the other two arrays. The response-SOAP message contains the two arrays.
The setter methods 'setPasswords' and 'setFiles' of the AxisNode class are never called; all other methods are called (obviously)
There are no Exceptions on any side, the Arrays are just missing in the result object.
what am I doing wrong?
using Axis 1.1, JDK1.5
best regards Daniel
******************** ClientCode *************************** QName qn = new QName( "urn:BeanService", "AxisNode"); QName qn2 = new QName( "urn:BeanService", "AxisPassword"); QName qn3 = new QName( "urn:BeanService", "AxisFile");
call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.registerTypeMapping(AxisNode.class, qn, new BeanSerializerFactory(AxisNode.class, qn), new BeanDeserializerFactory(AxisNode.class, qn)); call.registerTypeMapping(AxisPassword.class, qn2, new BeanSerializerFactory(AxisPassword.class, qn2), new BeanDeserializerFactory(AxisPassword.class, qn2)); call.registerTypeMapping(AxisFile.class, qn3, new BeanSerializerFactory(AxisFile.class, qn3), new BeanDeserializerFactory(AxisFile.class, qn3));
call.setOperationName("getNode"); call.addParameter("ID", XMLType.XSD_LONG, ParameterMode.IN); call.setReturnType(qn); AxisNode ret = (AxisNode)call.invoke(new Object[] {new Long(9)} );
**** The SOAP Message Response (some values shortened) *************
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getNodeResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getNodeReturn href="#id0"/>
</getNodeResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:AxisNode" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:BeanService">
<ID xsi:type="xsd:long">9</ID>
<attachedFiles xsi:type="soapenc:Array" soapenc:arrayType="ns1:AxisFile[2]">
<item xsi:nil="true"/>
<item href="#id1"/>
</attachedFiles>
<certificateName xsi:type="xsd:string">testkey_1</certificateName>
<description xsi:type="xsd:base64Binary">OaGg=</description>
<encrypted xsi:type="xsd:boolean">true</encrypted>
<name xsi:type="xsd:base64Binary">WJQrlVUYfU=</name>
<nodeType xsi:type="xsd:string">NODE</nodeType>
<notes xsi:type="xsd:base64Binary">YRvrya6kjd84=</notes>
<passwords xsi:type="soapenc:Array" soapenc:arrayType="ns1:AxisPassword[1]">
<item href="#id2"/>
</passwords>
<subnodes xsi:type="soapenc:Array" soapenc:arrayType="xsd:long[0]"/>
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:AxisFile" xmlns:ns2="urn:BeanService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<description xsi:type="xsd:base64Binary">ZrJrPoMYM=</description>
<encrypted xsi:type="xsd:boolean">true</encrypted>
<fileData xsi:type="xsd:base64Binary">
</fileData>
<fileData_AsByteArray xsi:type="xsd:base64Binary">
</fileData_AsByteArray>
<name xsi:type="xsd:base64Binary">QJlIrX46x6c=</name>
<pwsFileID xsi:type="xsd:long">12</pwsFileID>
</multiRef>
<multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:AxisPassword" xmlns:ns3="urn:BeanService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<encrypted xsi:type="xsd:boolean">true</encrypted>
<notes xsi:type="xsd:base64Binary">CEJqE+2Q14=</notes>
<password xsi:type="xsd:base64Binary">YYIQEfrRGO0=</password>
<pwID xsi:type="xsd:long">6</pwID>
<username xsi:type="xsd:base64Binary">JkX5v3z6Y=</username>
<validFrom xsi:type="xsd:base64Binary">P64Csc=</validFrom>
<validTo xsi:type="xsd:base64Binary">BbASdTkK9qo=</validTo>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
******** deployment descriptor ********************
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="Passwordsafe" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="className" value="org.daniel.pws.server.axis.Axis_Server"/>
<parameter name="allowedMethods" value="*"/>
<beanMapping qname="ns1:AxisNode" xmlns:ns1="urn:BeanService" languageSpecificType="java:org.daniel.pws.server.axis.AxisNode"/>
<beanMapping qname="ns2:AxisFile" xmlns:ns2="urn:BeanService" languageSpecificType="java:org.daniel.pws.server.axis.AxisFile"/>
<beanMapping qname="ns3:AxisPassword" xmlns:ns3="urn:BeanService" languageSpecificType="java:org.daniel.pws.server.axis.AxisPassword"/>
</service>
</deployment>
******************