In the SOA field, we believe that Web Service is the building block of the SOA system ). For service developers, neither axis nor cxf is unfamiliar. Both products are open-source Web service development tools under the Apache incubator. The latest version of axis2 is 1.3.cxf and has now reached version 2.0.
Both frameworks are developed from existing open-source projects. Axis2 is developed from the axis1.x series. Cxf is a combination of xfire and celtix projects. Axis2 is re-implemented from the underlying layer, using a new scalable and better module architecture. Cxf has also deepened the xfire and celtix development tools.
The exit of the new product caused several problems. Is it possible to migrate existing applications using axis 1.x, xfire, and celix to a new version. If a developer is sure to migrate its application to the new framework, which one should he choose? On the contrary, if a developer decides to develop a new Web service from scratch, which one should he use? Which of the two frameworks is better?
For system migration, it may not be difficult to migrate to the new framework. Both axis and cxf provide migration guidance. Provides developers with some migration skills and experience. However, for such migration, neither of the two open-source projects provides a migration tool. For such migration, it is worth looking for all feasible solutions. Both axis2 and cxf have different WebService development methods. Each method has a considerable number of advocates.
Comparing axis2 and cxf with a comparison matrix makes sense. Both projects are not mature enough, but the main differences are as follows:
1. cxf supports WS-Addressing, WS-Policy, WS-RM, WS-Security, and WS-I basic profile. Axis2 does not support WS-policy, but promises to support it in the following versions.
2. cxf supports spring well. Axis2 cannot
3. AXIS2 supports a wider range of data, such as XMLBeans, JiBX, JaxMe, and JaxBRI, and bind them to ADB. Note that both JaxME and JaxBRI are experimental. CXF only supports JAXB and Aegis. In CXF2.1
4. Axis2 supports multiple languages-in addition to Java, it also supports C/C ++.
Comparing the Web Service development methods of these two frameworks is equally important as comparing their features. From the developer's point of view, the features of the two frameworks are quite different. The development method of Axis2 is similar to that of a small Application Server. The Axis2 development kit should be deployed to Servlet containers in the form of WAR, such as Tomcat, these containers can be used to monitor and manage the Web Service at work. The Web administrion module of Axis2 allows us to dynamically configure Axis2. a new service can be uploaded, activated, invalidated, and web Service parameters can be modified. The management UI can also manage one or more running services. One drawback of this interface-based management method is that all the parameters modified during the runtime cannot be saved, because after the restart, all the modifications you have made will become invalid.
Axis2 allows itself to publish Web services as independent applications, and provides a large number of features and a good model. This model can be implemented through its own architecture (modular architecture) add new features constantly. Some developers think this method is too cumbersome for their needs. These developers prefer CXF.
CXF focuses more on the developer's efficiency (ergonomics) and embedded capabilities (embeddability ). Most configurations can be completed through APIS, replacing the complicated XML configuration file. Spring integration is often mentioned, CXF supports Spring, CXF's API, and Spring configuration files. CXF emphasizes the code-first design (code-first design) and uses simple APIs to make it easier to develop services from existing applications.
However, if you choose axis2 or cxf, you can get a lot of help from the open-source community. Both frameworks are provided by commercial companies, wso2 provides axis2 support, and Iona provides cxf support. Both companies have active developer communities. Axis2 appeared earlier, and cxf was catching up quickly. My suggestion is: If you need multi-language support, you should select axis2. If you need to focus your implementation on Java and want to integrate with spring, cxf is a better choice, especially to embed your web service into other programs. If you think that the new features of these two frameworks are not very useful to you, you will think axis1 is also a good choice, you should continue to use it and know that you have a good reason to replace it.