Ok! I was actually able to convert the rpc/encoded WSDL to rpc/literal. So I use my
modified WSDL against the service rather than their rpc/encoded one. I realized the
response is valid rpc/literal, just with some added xsi:type attributes.
First step: convert the WSDL:
Convert the <soap:body attribute to use="literal" and remove the
encodingStyle attribute.
Second step: convert any complexTypes to not extend soapenc:Array:
Any types that use <xs:restriction base="soapenc:Array"> can be changed to
this:
For a loosely-typed array (JAXB will map it to a List):
| <xs:complexType name="VariantArray">
| <xs:complexContent>
| <xs:extension base="ns1:GlxNode">
| <xs:sequence>
| <xs:any namespace="##any" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
| </xs:sequence>
| </xs:extension>
| </xs:complexContent>
| </xs:complexType>
|
or for a typed List:
| <xs:complexType name="StringArray">
| <xs:complexContent>
| <xs:extension base="ns1:GlxNode">
| <xs:sequence>
| <xs:element name="String" type="xs:string"
minOccurs="0" maxOccurs="unbounded" />
| </xs:sequence>
| </xs:extension>
| </xs:complexContent>
| </xs:complexType>
|
Just chose your own "base" type to extend or just create a new ComplexType.
Note also that I ended up switching to Metro (JAX-WS) 1.2 rather than JBossWS. But using
JBossWS as a client seemed to work as well.
This is a bit of a pain but still a hell of a lot better than not being able to consume an
RPC/encoded service or being stuck using Axis 1. Hope this helps someone as I
couldn't find any other solution in all my searching.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4163152#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...