To discover wether a WSDL is using RPC or literal encoding, check the “style” parameter of the “binding” element, such as
<binding name="A_WebServiceBinding" type="tns:A_WebServiceRPC">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
In Java, RPC based SOAP is implemented by JAX-RPC, a quite old API developed for Java 1.4. As it is older than JAXB, it even implements its own XML to Java object mapping.
When SOAP 1.2 was released, the Java platform switched to the newer JAX-WS implementation to support it along with other stuffs, namely HTTP Binding (aka XML over HTTP without SOAP), a new data mapping model and support for WS-I basic profile 1.1
You can read this IBM article for a very good, while concise, description of JAX WS vs JAX RPC.
In NetBeans 7.0, only JAX WS is provided out of the box. When you encounter older WSDL, based on RPC encoding, you must manually install JAX-RPC. However this plugin is not provided in the default plugin repository anymore. You will need to add another plugin repository :
Et voilà, you are now ready to create JAX RPC based Java clients by choosing the “File” menu, then “New File” then choose “Web Service Clients” in the “Web Services” section.
Enjoy !
]]>