Hi all
In addition to Jir'ed bug (
http://issues.apache.org/jira/browse/AXIS2-3279) I'd like to add some
comments.
Fixing of mentioned bug will allow correct handling 'of xsi:type' attributes
for extended types. However, if I don't mistake, polymorphism may be also
supported by usage of 'substitutionGroup' attribute. In such case 'no
xsi:type' attribute presence is needed. BeanUtil does not support this
option as well, the base type will be instantiated according to the exposed
service signature type:

         line 345:    beanObj = objectSupplier.getObject(beanClass);

The fix of this problem seems quite feasible. In simplest case, the
ObjectSupplier interface may be extended by addition one more method -

     Object getObject(Class clazz, QName elementName) throws AxisFault;

The name of element will be passed to objectSupplier. The default
objectSupplier (DefaultObjectSupplier) will ignore it, but axis2 user will
be able to register his own ObjectSupplier implementation which will allow
support of polymorphism when this is an application requirement (as in our
case). And, of course, Axis may supply its own out-of-box implementation of
such factory.

Sincerely,
Alex

Reply via email to