You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by delta 78 <de...@gmail.com> on 2006/12/14 23:28:27 UTC

Polymorphism and xsi:type

Hello,

Following up on various polymorphism questions: How do we send the entire
derived type from an axis generated client to the server? Specifically, soap
requests don't seem to contain fields from derived class that are not
present in the base class.

Lets use the familiar example of Shape and its derived classes Circle and
Square. Here, circle has a field "radius" that is not in the Shape and
Square has a field "length" that is not in the Shape. Ideally, my requests
to draw method should look like this:

<DrawRequest>
    <Shape>
        <Radius>10</Radius>
      </Shape>
<DrawRequest>

And

 <DrawRequest>
    <Shape>
        <Length>10</Length>
      </Shape>
<DrawRequest>

However, the client generated from WSDL2Java does not send the additional
fields to the server at all.
For example, consider following code:

Circle c = new Circle(10);
drawBinding.draw( c );

This code produces following soap message:

<DrawRequest>
   <Shape></Shape>
</DrawRequest>


How can I have axis clients send all the fields from the type used to create
the request?

Thanks,
-Delta