37

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

4

1 回答 1

61

axis2 web service和CXF web service的主要区别如下:

  1. CXF 支持 WS-Addressing、WS-Policy、WS-RM、WS-Security 和 WS-I BasicProfile。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 附带一个 WAR,该 WAR 可以部署在 Tomcat 等 servlet 容器上,该容器旨在使 Web 服务更易于管理和动态部署。Axis2 Web 管理模块允许在应用程序运行时动态配置 Axis2——可以上传、激活或停用新服务,并且可以更改它们的参数。管理 UI 还允许在一个或多个正在运行的服务上启用模块。

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 比较满意,那么您应该考虑继续使用它并跟上最新的维护版本,直到您有迁移的商业理由。

于 2013-02-18T09:57:18.097 回答