如果有人帮助我理解axis2 web服务和CXF Web服务之间的区别,我将不胜感激。
答案 0 :(得分:53)
axis2 Web服务和CXF Web服务之间的主要区别如下:
CXF支持WS-Addressing,WS-Policy,WS-RM,WS-Security, 和WS-I BasicProfile。除了以外,Axis2支持其中的每一个 WS-Policy,将在即将发布的版本中得到支持。
CXF是用Spring编写的; Axis2不是。
Axis2支持更广泛的数据绑定,包括XMLBeans, JiBX,JaxMe和JaxBRI以及它自己的本机数据绑定,ADB。 请注意,仍然会考虑对JaxME和JaxBRI的支持 在Axis2 1.2中进行实验。 CXF目前仅支持JAXB和 宙斯盾;支持XMLBeans,JiBX和Castor将在CXF 2.1中提供。
Axis2支持多种语言 - 有一个C / C ++版本 除了Java版本之外还可以使用。
在比较这些框架时,看待他们开发Web服务的方法和比较功能同样重要。从开发人员的角度来看,两个框架的行为彼此差异很大。 Axis2采取的方法使其在许多方面类似于微型应用服务器。 Axis2附带了一个WAR,可以部署在诸如Tomcat之类的servlet容器上,旨在使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支持,而CXF由Iona支持。两者都有活跃的开发者社区Axis2已经存在更长时间,但CXF正在迅速赶上。我的建议如下:如果多语言支持很重要,Axis2是明智的选择。如果您关注与Java紧密集成的Java实现,那么CXF是更好的选择,特别是对于在其他程序中嵌入Web服务。如果这些项目中的新功能不重要,并且您对Axis1相对满意,那么在您有业务原因需要迁移之前,您应该考虑继续使用并保持最新的维护版本。