I?ve encountered couple of problems while changed my web services from rpc/encoded to document/literal. The most annoying one is that Axis? Java2WSDL tool generates names for parameters for each method independently, i.e. all methods in a service get their parameters named in0, in1 and so on, which leads to collision . Consider following wsdl:
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://myservice.com"> <element name="in0" type="tns2:SomeObject"/> <!?For method 1--> <element name="in0" type="tns2:EnotherObject"/> <!?For method 2-> </schema> ? <wsdl:message name="method1"> <wsdl:part name="in0" element="impl: in0"/> </wsdl:message> <wsdl:message name="method2"> <wsdl:part name="in0" element="impl: in0"/> </wsdl:message>
paramDesc.setQName(new QName(opNamespace, method.getName()+"_in" + k));
I have done it, mostly, but in my case I wrote the wsdl from scratch. This isn't such a bad methodology anyway.