[
https://issues.apache.org/jira/browse/AXIS-2914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
robert lazarski closed AXIS-2914.
---------------------------------
Resolution: Won't Fix
> Wrong deserialization of arrays
> -------------------------------
>
> Key: AXIS-2914
> URL: https://issues.apache.org/jira/browse/AXIS-2914
> Project: Axis
> Issue Type: Bug
> Components: Serialization/Deserialization
> Affects Versions: 1.4
> Environment: Java 1.8.0_66
> Reporter: Andre Rothe
> Priority: Major
>
> An external webservice returns a message
> {code:xml}
> <?xml version="1.0" encoding="UTF-8" standalone="no"?><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:Header><ns1:wosid
> xmlns:ns1="http://www.apple.com/webobjects/webservices/soap/"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
> soapenv:mustUnderstand="0"
> xsi:type="soapenc:string">KMN8CSp2A5BOd0OOOPizng</ns1:wosid><ns2:woinst
> xmlns:ns2="http://www.apple.com/webobjects/webservices/soap/"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
> soapenv:mustUnderstand="0"
> xsi:type="soapenc:string">1</ns2:woinst></soapenv:Header><soapenv:Body><ns3:projectDataResponse
> xmlns:ns3="http://ws.dc.xyz.de"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><projectDataReturn
> xmlns:ns4="http://results.ws.appserver.xyz.de"
> xsi:type="ns4:ProjectDataResult"><errorCode
> xsi:type="xsd:int">0</errorCode><message
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:nil="true"
> xsi:type="soapenc:string"/><statusCode
> xsi:type="xsd:int">1</statusCode><project
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="soapenc:string">ZKS</project><centres
> xmlns:ns5="http://beans.eo.xyz.de" xsi:type="ns5:CentreBean"><name
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="soapenc:string">Center 1</name></centres><centres
> xmlns:ns6="http://beans.eo.xyz.de" xsi:type="ns6:CentreBean"><name
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="soapenc:string">Center
> 2</name></centres></projectDataReturn></ns3:projectDataResponse></soapenv:Body></soapenv:Envelope>
> {code}
> But the Array contains only the last CentreBean object. I have seen in the
> code, that the set() method of the BeanPropertyDescriptor overwrites the
> previous CenterBean object in the target array. The object is casted to
> CentreBean[] with one entry and it is stored on the same place as the first
> CenterBean.
> It seems, that it should be necessary to use an index property value greater
> than 0 to access the right set() method (the one which can handle arrays),
> but the index is always -1, and so it will use the simple one.
> Within the DeserializerImpl.class I have a CentreBean.class as value object
> within the valueComplete() method (which is called after the endElement event
> during the XML parsing). The first call to the BeanPropertyDescriptor.set()
> throws an exception because the object type must be an array. After
> JavaUtils.convert() I have the right type, but the set() method doesn't
> recognize, that there is a value already stored within the
> BeanPropertyDescriptor. So the result will hold only the last one.
> Is this a problem with the deserializer or is there a problem with the
> Webservice description?
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]