[ http://issues.apache.org/jira/browse/AXIS2-586?page=comments#action_12374971 ]
Justin Schoeman commented on AXIS2-586: --------------------------------------- This does not seem to be entirely resolved in Axis2 0.95. Using the same configuration as before (except for Axis2 0.95 instead of 0.94), I get the following: Request message on the wire (for the ClientID parameter) : <clientID xmlns="http://www.nrs.eskom.co.za/xmlvend/base/2.0/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sch="http://www.nrs.eskom.co.za/xmlvend/base/2.0/schema" xsi:type="sch:GenericDeviceID" id="255255010" /> (which seems fine) Deserialised object .getClass().getName() = za.co.eskom.nrs.www.xmlvend.base._2_0.schema.impl.DeviceIDImpl (should be za.co.eskom.nrs.www.xmlvend.base._2_0.schema.impl.GenericDeviceIDImpl) Deserialised object .schemaType() = [EMAIL PROTECTED]://www.nrs.eskom.co.za/xmlvend/base/2.0/schema (should be [EMAIL PROTECTED]://www.nrs.eskom.co.za/xmlvend/base/2.0/schema) Deserialised object .toString() = <xml-fragment xsi:type="sch:GenericDeviceID" id="255255010" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sch="http://www.nrs.eskom.co.za/xmlvend/base/2.0/schema"/> (which seems fine). So, even though the xsi:type information is now being correctly sent, the object is still not deserialised correctly (it is deserialised as the parent type, instead of the implemented type). -justin > CLONE -Axis2 does not deserialise abstract types correctly when receiving WSA > messages > -------------------------------------------------------------------------------------- > > Key: AXIS2-586 > URL: http://issues.apache.org/jira/browse/AXIS2-586 > Project: Apache Axis 2.0 (Axis2) > Type: Bug > Versions: 0.94 > Environment: Suse Linux 9.3 Server, Tomcat 5.0, Axis2 0.94 > Reporter: Justin Schoeman > Assignee: Ajith Harshana Ranabahu > > When receiving WSA encoded messages containing abstract types, the created > objects are for the implementation of the abstract class, instead of the > actual type sent over the wire. > In the following example, DeviceID is an abstract type, and EANDeviceID is an > implementation of that type. The following information is obtained from the > deserialised DeviceID object (which is sent as an EANDeviceID object): > WSA: > getClass().getName(): > za.co.eskom.nrs.www.xmlvend.base._2_0.schema.impl.DeviceIDImpl > schemaType(): [EMAIL PROTECTED]://www.nrs.eskom.co.za/xmlvend/base/2.0/schema > toString(): <xml-fragment type="sch:GenericDeviceID" id="255255010" > xmlns:sch="http://www.nrs.eskom.co.za/xmlvend/base/2.0/schema"/> > XSI: > getClass().getName(): > za.co.eskom.nrs.www.xmlvend.base._2_0.schema.impl.GenericDeviceIDImpl > schemaType(): [EMAIL PROTECTED]://www.nrs.eskom.co.za/xmlvend/base/2.0/schema > toString(): <xml-fragment xsi:type="sch:GenericDeviceID" id="255255010" > xmlns:sch="http://www.nrs.eskom.co.za/xmlvend/base/2.0/schema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> > As you can see, in both cases, the correct information is contained in the > xmlbean, but for the WSA message it is deserialised incorrectly. > -justin -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira