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