This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Start reading here: http://www.coderanch.com/how-to/java/WebServicesFaq. You need to differentiate between APIs (like JAX-RPC and JAX-WS) and implementations of those APIs (like Axis and CXF). Also note that Sun Microsystems has ceased to exist as an entity several years ago.
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.
The data mapping model
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.
Thanks a lot...
Joined: Mar 22, 2005
haley wv wrote:JAX-RPC maps to Java 1.4. JAX-WS maps to Java 5.0.
Using the word "map" here is confusing, especially as you're also using it further down with a different meaning. There is no correlation between Java versions and WS standards, apart from JAX-WS requiring at least Java 5. It needs to be said that JAX-RPC has been obsolete for a long time, and should not be used for anything new at this point.