I am working on web service from last couple of years before i was only know about Axis1/Axis2 and later i get to know more webservice API and framworks for JAVA(some of them given by Apache and SUN). Therefore first thing to know is whats the difference between all these APIs and framworsk. here is my try to make it simple to cleare confusion b/w ways to make webservices. here is littel defination part;
- Apache SOAP,JAX-RPC, Axis1 and Axis2.
Soap, JAX-RPC and Axis1 is obsolete now. JAX-RPC is a pecification/API for java developer to develop SOAP based interoperatable webservices . This API is now obsolete and may be dropped from next J2EE version. same is the case with Axis1 because Axis1 is a web service framework and based on JAX_RPC ansd SAAJ and this turned out not be good approach because JAX-RPC constrained the internal design of the Axis code and contributed to both performance and flexibility issues. therefor Axis1 is also now obsolete now. Axis2 replace the JAX-RPC with JAX-WS and also support SAAJ. so Axis2 was designed to be flexible enough to implement support for the replacement web service standard on top of base framwork one of the reason is based on completely new architecture and has been written from scratch. Recent version of the Axis2 have implemented support for both the JAXB 2.x java XML data binding standard and JAX-WS 2.x java web service standard that replace java JAX-RPC.
- SAAJ is another API/specification for using SOAP envelops with or without attachment. It operates on lower level then JAX-RPC or JAX-WS, both of which will use SOAP envelopes based on SAAJ if needed.
- CXF is an open source service framwork . It comes up from a fusion of XFire and Ionas Celtix project. CXF was developed with the intention to integrate it into other systems. This is reflected in the CXF API and the use of the Spring framework. Therefore it is simple to integrate CXF into existing systems. CXF helps you to develop and build services using frontend programming APIs, like JAX-WS and JAX-RS. these services can speak veriety of protocols such as SOAP, XML/HTTP, RestFul Http, CORBA and work over veritey of transports such as Http, JMS or JBI. CSF implemnts the JAX-Ws APIs. CXF JAX-WS support includes some extension to the standard that make it significantly easy to use, compared to the reference implementation: it will automatically generate code for request and response bean classes and dose not requires WSDL in the simple case. It also include “simple front-end ” which allow creation of client and endpoint without annotation. It support both Generating WSDL from Java classes and generating Java classes from WSDL.
- JAX-WS The Java API for XML based Web Services is the successor of the JAX-RPC specification. JAX-WS respectively its predecessor is message based and supports asynchronous communication. The Configuration is managed by annotations therefore Java 5 or higher is required. JAX-WS isn’t downwardly compatible to its predecessor JAX-RPC. With JAX-WS it is pretty easy to write and consume Web Services. The default values of numerous parameters are comfortable for the programmer, so that simple Pojos declared with a @WebService annotation can be used as a Service
- More recent SOAP offerings from Apache―the competing Apache Axis2 and Apache CXF projects―both implement JAX-WS. So far as I can tell, neither of them implements the older JAX-RPC API. The CXF User Guide recommends JAX-WS as a primary programming framework. Axis2 advocates its own APIs, and at the time of writing the JAX-WS interface was sparsely documented. But it does exist.
The JAX-WS Reference Implementation (JAX-WS-RI) is developed within the GlassFish Community. It is another Open Source implementation of JAX-WS. So these three leading candidates for “modern” Java SOAP implementations all implement JAX-WS, and none of them implements JAX-RPC. If the implementers are right, JAX-WS seems to be the way of the future.
A snapshot
JAX-WS is a Specification (provided by Sun, now Oracle) to defining Web Services by use of Annotations.
Apache CXF is a framework that implements JAX-WS to generate Web Services Definitions and Java Proxy (from a Web Service Definitions)
Apache Axis 2 is also a framework that now supports JAX-WS (up to JAX-WS 2). It’s an improvement from Apache Axis. CXF supports up to JAX-WS 1.2.
Hope this Artical help you to understand the difference /relationship between webservice API and frameworks.
P.S if you have question ask under this blog and if you like this then support me to write more by showing your likeness.
hi,
after going through all the stuff provided by u , i got cleared all doubts abt basic webservices . It is really very good . Thanks.
keep blogging ur knowledge.
Thanks
keep visiting
actually can u explain what is the difference between Axis 2.x & Jax-Ws
Axis2 is an layer over JAX-WS. JAX-WS The Java API for XML based Web Services is the successor of the JAX-RPC specification.
Axis1 one was based on JAX-RPC
and then
Axis2: Axis2 replace the JAX-RPC with JAX-WS and also support SAAJ.Axis2 was designed to be flexible enough to implement support for the replacement web service standard on top of base framwork one of the reason is based on completely new architecture and has been written from scratch.
Hope you clear now.