Title: Axis 1.2 Beta issue with derived classes

Axis 1.2 beta is not returning derived class names in the multiRefs as it used to
in Axis 1.1. Any input on this would be great; is this a known issue?

Abstract Example below illustrates the issue:

public class A
{
 private String amember1;
}

public class B extends A
{
 private String bmember1;
 private String bmember2;
}

public class C extends A
{
 private String cmember1;
 private String cmember2;
}

public class ContainerClass
{
 private A aInstance;
}


Suppose the reference of aInstance in an instance of the ContainerClass was set to an instance of Class C and sent across.

------------ Axis 1.1 Multiref section ---------------------

<multiRef id="id7" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns7:ContainerClass"
              xmlns:ns7="http://namespace.ws"
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <aInstance href="">
</multiRef>

<multiRef id="id14" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns7:C"  // THIS WORKS GREAT, SINCE aInstance had a reference to an instance of C
              xmlns:ns7="http://namespace.ws"
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <amember1 href="">
        <cmember1 href="">
        <cmember2 href="">
</multiRef>

<multiRef id="id15" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:string"       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

This is value of amember1
</multiRef>

<multiRef id="id16" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:string"       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

This is value of cmember1
</multiRef>

<multiRef id="id17" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:string"       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

This is value of cmember2
</multiRef>

For the same on 1.2 there is an issue

------------ Axis 1.2 beta Multiref section ---------------------

<multiRef id="id7" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns7:ContainerClass"
              xmlns:ns7="http://namespace.ws"
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <aInstance href="">
</multiRef>

<multiRef id="id14" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns7:A"               /// THIS IS DIFFERENT!!! This should be "ns7:C"
              xmlns:ns7="http://namespace.ws"
              xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <amember1 href="">
        <cmember1 href="">
        <cmember2 href="">
</multiRef>

<multiRef id="id15" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:string"       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

This is value of amember1
</multiRef>

<multiRef id="id16" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:string"       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

This is value of cmember1
</multiRef>

<multiRef id="id17" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:string"       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

This is value of cmember2
</multiRef>


In essence the super class type is being sent across with sub-class member data and that breaks
the client which instantiates a super class object and tries calling 'set' methods on sub-class members

Reply via email to