Axis2 webservice 和 CXF web service 的区别

Posted

技术标签:

【中文标题】Axis2 webservice 和 CXF web service 的区别【英文标题】:Difference between Axis2 webservice and CXF web service 【发布时间】:2013-02-02 17:03:35 【问题描述】:

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

【问题讨论】:

Difference between Apache CXF and Axis 的可能重复项 【参考方案1】:

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

    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 和 宙斯盾; CXF 2.1 将支持 XMLBeans、JiBX 和 Castor。

    Axis2 支持多种语言——有一个 C/C++ 版本 除 Java 版本外可用。

不过,在比较这些框架时,查看它们开发 Web 服务的方法与比较功能同样重要。从开发人员的角度来看,这两个框架的行为方式彼此非常不同。 Axis2 采用了一种方法,使其在许多方面类似于微型应用服务器。 Axis2 附带了一个 WAR,该 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 并紧密集成到 Spring 等项目中的实现,那么 CXF 是一个更好的选择,特别是对于将 Web 服务嵌入到其他程序中时。如果这些项目中的新功能并不重要,并且您对 Axis1 比较满意,那么您应该考虑继续使用它并跟上最新的维护版本,直到您有迁移的商业理由。

【讨论】:

从我的角度来看,直到现在尝试将其用于客户端开发,CXF 都是无用的。除非我使用系统属性,否则我无法定义连接池参数?这是什么蠢事?这曾经与 Axis2 一起存在。

以上是关于Axis2 webservice 和 CXF web service 的区别的主要内容,如果未能解决你的问题,请参考以下文章

cxf快速简单的实现webservice调用

我第一次接触webservice,怎么调用用web service接口,cxf或者axis2都行,网上找的例子,都有点错误

cxf 入门

Axis和CXF的比较

webService总结——使用CXF公布和调用webService(不使用Spring)

cxf-webservice完整示例