You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Justin Schoeman (JIRA)" <ji...@apache.org> on 2006/04/18 19:25:23 UTC

[jira] Commented: (AXIS2-586) CLONE -Axis2 does not deserialise abstract types correctly when receiving WSA messages

    [ 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() = T=DeviceID@http://www.nrs.eskom.co.za/xmlvend/base/2.0/schema (should be T=GenericDeviceID@http://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(): DeviceID@http://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(): T=GenericDeviceID@http://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