[ 
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

Reply via email to