by Kuldip Bajwa
The main differences between JAX-RPC and JAX-WS are listed below:
- SOAP 1.2 as opposed to SOAP v1.1 (backward compatible).
- JAX-RPC and JAX-WS support SOAP 1.1. JAX-WS also supports SOAP 1.2.
- The WSDL 1.1 specification defined an HTTP binding, which is a means by which you can send XML messages over HTTP without SOAP. JAX-RPC ignored the HTTP binding. JAX-WS adds support for it.
- WS-I’s Basic Profiles
- JAX-RPC supports WS-I’s Basic Profile (BP) version 1.0. JAX-WS supports BP 1.1. (WS-I is the Web services interoperability organization.)
- New Java features
- JAX-RPC maps to Java 1.4. JAX-WS maps to Java 5.0. JAX-WS relies on many of the features new in Java 5.0.
- Java EE 5, the successor to J2EE 1.4, adds support for JAX-WS, but it also retains support for JAX-RPC, which could be confusing to today’s Web services novices.
- JAX-RPC has its own data mapping model, which covers about 90 percent of all schema types.Those that it does not cover are mapped to javax.xml.soap.SOAPElement.
- JAX-WS’s data mapping model is JAXB. JAXB promises mappings for all XML schemas and the current JAXB implementation is much quicker then its predecessors.
- JAX-WS’s model makes use of new Java 5.0 features.
- JAX-WS’s model introduces asynchronous functionality.
- JAX-WS’s dynamic client model is quite different from JAX-RPC’s. Many of the changes acknowledge industry needs:
- It introduces message-oriented functionality.
- It introduces dynamic asynchronous functionality.
- JAX-WS also adds a dynamic server model, which JAX-RPC does not have
- The handler model has changed quite a bit from JAX-RPC to JAX-WS.
- JAX-RPC handlers rely on SAAJ 1.2. JAX-WS handlers rely on the new SAAJ 1.3 specification
Web services communication is defined in two design paradigms – namely JAX-RPC and JAX-WS.
- JAX-WS allows for asynchronous communication as opposed to procedural blocking responses. Also the serialization and deserialization of XML data is done more efficiently and faster using the latest JAXB 2.0 implementation which is much more performing than the its predecessors.
- JAX-WS is multi protocol compatible i.e. support of SOAP 1.1 and 1.2.
- JAX-WS makes heavy of Java annotations as described by the JSR-181 specification which simplifies client implementation and readability.