Axis2 webservice和CXF web service的区别

37

如果有人能帮助我理解axis2 web服务和CXF web服务之间的区别,我将不胜感激。


4
可能是Apache CXF和Axis之间的区别的重复问题。 - Paulius Matulionis
1个回答

62
Axis2 Web服务和CXF Web服务的主要区别如下:
  1. CXF支持WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile,而Axis2支持除WS-Policy外的所有这些功能。WS-Policy将在以后的版本中支持。

  2. CXF编写时考虑了Spring,而Axis2则没有。

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

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

然而,在比较这些框架时,重要的是要看它们开发Web服务的方法,而不仅仅是比较功能。从开发人员的角度来看,这两个框架的行为非常不同。Axis2采取了一种方法,使它在许多方面类似于一个小型应用服务器。Axis2打包了一个WAR文件,可以部署在诸如Tomcat之类的Servlet容器上,旨在使Web服务更易于管理和动态部署。Axis2 Web Administration模块允许在运行应用程序时动态配置Axis2--可以上传、激活或停用新服务,并更改它们的参数。管理UI还允许在一个或多个正在运行的服务上启用模块。使用UI进行这些目的的唯一缺点是通过UI进行的配置更改不是持久性的--它们在Servlet容器重新启动时消失。

Axis2适用于独立于其他应用程序的Web服务,并提供广泛的功能,以及通过其模块化架构为随着时间的推移添加更多功能提供了良好的模型。一些开发人员可能会发现这对他们的需求来说有些麻烦或过于笨重。这些开发人员可能更喜欢看看Apache CXF。

CXF专注于开发者的人性化和可嵌入性。大部分配置通过API完成,而不是繁琐的XML文件;强调与Spring集成,支持Spring 2.0,并且CXF的API和Spring配置非常相似。CXF强调代码优先设计,使用简单的API使服务的开发更容易,并且它的可嵌入性也有所帮助。

无论选择哪个框架,都可以获得一个活跃和稳定的开源社区。这些框架都有公司支持:Axis2由WSO2支持,CXF由Iona支持。两者都拥有充满活力的开发者社区。Axis2已经存在更长的时间,但CXF正在迅速赶上。我的建议是:如果多语言支持很重要,那么Axis2是明显的选择。如果您关心Java的实现并与诸如Spring等项目紧密集成,那么CXF是更好的选择,特别是将Web服务嵌入到其他程序中。如果这些项目中的新功能不重要,并且您对Axis1相对满意,那么您应该考虑继续使用它并保持最新的维护版本,直到您有业务原因需要迁移。


从我的角度来看,到目前为止,CXF在客户端开发方面是无用的。除非我使用系统属性,否则我无法定义连接池参数?这是什么样的愚蠢行为?在Axis2中,这个功能是存在的。 - abdelrahman-sinno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接