[ https://issues.apache.org/jira/browse/AXIS2-3651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593365#action_12593365 ]
nadir amra commented on AXIS2-3651: ----------------------------------- I agree with Aaron...if there is a problem on the client side then it needs to be fixed on the client side (i.e. open a new JIRA). Currently the reponse that is returned is not valid and the fix documented here corrects that problem. > BeanUtil class should try and fill the xsi:type attribute with value from > type table before defaulting to class name > -------------------------------------------------------------------------------------------------------------------- > > Key: AXIS2-3651 > URL: https://issues.apache.org/jira/browse/AXIS2-3651 > Project: Axis 2.0 (Axis2) > Issue Type: Improvement > Components: databinding > Affects Versions: 1.4, 1.3 > Environment: Windows XP SP2, Java 6 > Reporter: Aaron Gourley > Assignee: nadir amra > Priority: Minor > > Using the type table to fill the xsi:type attribute would help make it > possible to successfully validate SOAP response messages against the WSDL. > Although the class name approach may be sufficient for POJO services, it > provides meaningless information when other approaches are used. > I suggest replacing the following lines of BeanUtil.java > // Added objectAttributes as a fix for issues AXIS2-2055 and > AXIS2-1899 to > // support polymorphism in POJO approach. > // For some reason, using QName(Constants.XSI_NAMESPACE, "type", > "xsi") does not generate > // an xsi:type attribtue properly for inner objects. So just > using a simple QName("type"). > ArrayList objectAttributes = new ArrayList(); > objectAttributes.add(new QName("type")); > objectAttributes.add(beanObject.getClass().getName()); > With this (or similar ... not sure if qualified check should be there): > ArrayList objectAttributes = new ArrayList(); > objectAttributes.add(new QName(Constants.XSI_NAMESPACE, "type", > "xsi")); > if( typeTable != null && qualified ) > { > QName qNamefortheType = > > typeTable.getQNamefortheType(beanObject.getClass().getName()); > if (qNamefortheType == null) { > // Added objectAttributes as a fix for issues AXIS2-2055 > and AXIS2-1899 to > // support polymorphism in POJO approach. > objectAttributes.add(beanObject.getClass().getName()); > } > else > { > objectAttributes.add(qNamefortheType); > } > } > else > { > objectAttributes.add(beanObject.getClass().getName()); > } > Note that I had no issues with generating the xsi:type attribute for inner > elements in my testing (as was mentioned by the existing comment). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]