I think I found the problem. The web service I need to call uses soap encoding 
style (http://schemas.xmlsoap.org/soap/encoding/), hence EncodedTypeMapping is 
used which registers type mapping for xsd:anyType as this:

// register mapping for xsd:anyType
      registerInternal(SOAPElement.class, Constants.TYPE_SOAP11_ANYTYPE, new 
SOAPElementSerializerFactory(), new SOAPElementDeserializerFactory());
      registerInternal(Element.class, Constants.TYPE_SOAP11_ANYTYPE, new 
ElementSerializerFactory(), new ElementDeserializerFactory());

In above code, it registers (De)SerializerFactory for a wrong QName. While the 
fix in LiteralTypeMapping is correct:

      // register mapping for xsd:anyType
      registerInternal(SOAPElement.class, Constants.TYPE_LITERAL_ANYTYPE, new 
SOAPElementSerializerFactory(), new SOAPElementDeserializerFactory());
      registerInternal(Element.class, Constants.TYPE_LITERAL_ANYTYPE, new 
ElementSerializerFactory(), new ElementDeserializerFactory());

So I think the above lines of code should be moved to 
TypeMappingImpl.registerStandardLiteralTypes() in order to fix the problem with 
both literal and soap encoding styles.


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4032888#4032888

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4032888
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to