2013-02-18 143 views
28

如果有人帮助我理解axis2 Web服务和CXF Web服务之间的差异,我将不胜感激。Axis2 web服务和CXF Web服务之间的差异

+4

[Apache CXF和Axis之间的区别]可能的重复(http://stackoverflow.com/questions/1243247/difference-between-apache-cxf-and-axis) – 2013-02-18 10:14:08

回答

46

Axis2 Web服务和CXF Web服务之间的主要区别如下:

  1. CXF拥有的WS-Addressing,WS-Policy的,WS-RM,WS-Security的, 和支持WS-我BasicProfile。除了 WS-Policy之外,Axis2还支持其中的每一种,即将推出的版本将支持WS-Policy。

  2. CXF是用Spring写的; Axis2不是。

  3. Axis2支持更广泛的数据绑定,包括XMLBeans, JiBX,JaxMe和JaxBRI以及它自己的本地数据绑定ADB。 请注意,JaxME和JaxBRI的支持在Axis2 1.2中仍被认为是实验性的 。 CXF目前仅支持JAXB和 Aegis;支持XMLBeans,JiBX和Castor将进入CXF 2.1。

  4. Axis2支持多种语言 - 除Java版本外还有一个C/C++版本 。

虽然在比较这些框架时,查看开发Web服务的方法和比较功能一样重要。从开发人员的角度来看,这两个框架的行为都非常不同。 Axis2采取了一种方法,使它在很多方面类似于微型应用服务器。 Axis2附带了一个可部署在Tomcat等servlet容器上的WAR,该容器旨在使Web服务更易于管理和即时部署。 Axis2 Web管理模块允许在应用程序运行时动态配置Axis2 - 可以上载,激活或取消激活新服务,并且可以更改其参数。管理UI还允许在一个或多个正在运行的服务上启用模块。将UI用于这些目的的唯一缺点是通过它进行的配置更改不是持久性的 - 当servlet容器重新启动时它们会消失。

Axis2适用于独立于其他应用程序的独立Web服务,并且提供了多种功能,以及随着时间推移通过其模块化体系结构添加更多功能的良好模型。有些开发人员可能会发现,对他们的需求来说有点过于繁琐或者很重要。这些开发人员可能更愿意看看Apache CXF。

CXF专注于开发人员的人机工程学和嵌入性。大多数配置都是通过API来完成的,而不是繁琐的XML文件,Spring集成受到了强烈的强调,包括对Spring 2.0的支持,以及CXF的API和Spring配置镜像。 CXF强调代码优先设计,使用简单的API来使现有应用程序的服务开发更容易(并且其嵌入性也有所帮助)。

无论您选择哪种框架,您都将拥有一个积极稳定的开源社区。这些框架中的每一个都有企业支持:Axis2由WSO2和Iona的CXF支持。两个都有活跃的开发者社区。 Axis2已经走过了更长的时间,但CXF正在迅速赶上。我的建议是:如果多语言支持很重要,Axis2是明确的选择。如果您关心一个专注于Java的实现,并紧密集成到像Spring这样的项目中,那么CXF是一个更好的选择,特别是将Web服务嵌入到其他程序中。如果这些项目中的新功能不重要,并且您对Axis1相对满意,则应考虑继续使用此功能,并跟上最新的维护版本,直到您有商业理由进行迁移。

+0

从我的角度来看,CXF是无用的现在尝试将其用于客户端开发。除非我使用系统属性,否则我无法定义连接池参数?这是什么类型的愚蠢?这曾经在Axis2中。 – 2015-12-01 16:19:00