文档章节

如何正确地在Axis、Axis2和Apache CXF之间抉择?

琴弦上的鱼
 琴弦上的鱼
发布于 2014/08/29 13:03
字数 736
阅读 85
收藏 1

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

新一代的 Web Services 框架如 Axis2、CXF 都是由现有的项目中逐渐演化而来的,Axis2 是由大家熟悉的 Axis 1.x 系列演化过来,而 Apache CXF 则是由 Celtix 和 XFire 项目整合而生,并且刚刚发布了 2.0.2 的最新版本,不过仍是 Apache 的一个孵化项目。

Axis2 是对 Axis 进行了彻底的重写的一个新项目了,它使用了新的模块化架构,更方便于功能性的扩展等等。
Apache CXF 则是由 XFire 和 Celtix 两个现有的项目进行了重组。

问题:如果现有的应用程序是基于 Axis 1.x、XFire 或者 Celtix 的话,那应该怎么办?都迁移到这些新的框架上去吗?但是即使是要迁移,那应该迁移到哪个框架上去呢?
如果是编写一个新的 Web Services 应用程序的话,就不存在迁移的问题了,但是哪个框架是你应当选择进行使用的呢?哪个比哪个更好呢?

对于现在的应用程序的迁移,如果你的应用程序是稳定而成熟的,并且在可预知的未来的情况下,只要很少的一些需求变更要做的话,那么保存你的体力,不要去做“劳民伤财“的迁移工作了。
如果你的现有应用程序BUG缠身,性能,功能等等都一片糟糕的话,那就要考虑迁移了,那选哪个框架呢?先比较一下它们的不同之处:

  1、Apache CXF 支持 WS-Addressing、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile
  2、Axis2 支持 WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持
  3、Apache CXF 是根据Spring哲学来进行编写的,即可以无缝地与Spring进行整合
  4、Axis2 不是
  5、Axis2 支持更多的 data bindings,包括 XMLBeans、JiBX、JaxMe 和 JaxBRI,以及它原生的 data binding(ADB)。
  6、Apache CXF 目前仅支持 JAXB 和 Aegis,并且默认是 JAXB 2.0,与 XFire 默认是支持 Aegis 不同,XMLBeans、JiBX 和 Castor 将在 CXF 2.1 版本中得到支持,目前版本是 2.0.2
  7、Axis2 支持多种语言,它有 C/C++ 版本。
  8、Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services

如何抉择:
1、如果应用程序需要多语言的支持,Axis2 应当是首选了;
2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说;
3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如 Axis1,XFire,Celtrix 或 BEA 等等厂家自己的 Web Services 实现,就别劳民伤财了。
转载自  http://www.iteye.com/wiki/Apache-CXF/1252-如何正确地在Axis、Axis2和Apache%20CXF之间抉择?

本文转载自:http://cometlj.iteye.com/blog/306616

琴弦上的鱼
粉丝 3
博文 41
码字总数 6479
作品 0
乌鲁木齐
程序员
私信 提问
做一个小小的调查,开发webservice的时候你们都选择什么引擎

Hi,论坛的各位兄弟姐妹,有个小小的调查,如题。 问题背景: 之前用过Axis1,但是任务比较紧,只是用WSDL2JAVA去生成对方.net应用的服务的存根。之后没有太过深入的去了解Axis1了。这段时间比...

刘航
2011/06/28
2.1K
6
webservice 2014-1-21

axis2 download: http://axis.apache.org/axis2/java/core/download.cgi axis vs. xfire vs. CXF http://blog.csdn.net/houzhaoling/article/details/6712706...

jayronwang
2014/01/21
76
0
几种流行Webservice框架性能对比

1 摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有30多种,这对于开发者如何选择带来一定的疑惑。性能Webservice的关键要素,不同的框架性能上存在较大差异,而当...

矮油油
2014/04/10
2.3K
1
WebService服务调用方法介绍

1 背景概述 由于在项目中需要多次调用webservice服务,本文主要总结了一下java调用WebService常见的6种方式,即:四种框架的五种调用方法以及使用AEAI ESB进行调用的方法。 2 预期读者 数通畅...

数通畅联
2015/11/19
713
0
CXF、Axis2 怎么实现相互调用???

关于webservice的软件有很多,这里只讨论cxf、Axis2这两种。(鄙人有个疑惑,求证实:由于cxf对spring框架支持的很好,而且操作起来也最简单,所以搞java的同学都选择cxf;但是,用.Net的同学...

追风少年8090
2013/01/09
10K
5

没有更多内容

加载失败,请刷新页面

加载更多

类比思想歪解Java线程

在操作系统的概念里,有内核态,用户态。其实,操作系统的最小执行单位是进程,而进程是分类型的,有两种类型,内核进程,用户进程。 内核进程由操作系统启动时创建,用户进程是由用户程序启...

萧默
46分钟前
2
0
Git推送错误“ [[远程拒绝]主机->主机(分支当前已签出)”)

昨天,我发布了一个有关如何将Git存储库从我的一台计算机克隆到另一台计算机的问题 , 如何从另一台计算机“ git clone”? 。 现在,我可以成功地将Git存储库从源(192.168.1.2)克隆到目标...

javail
56分钟前
4
0
Selenium 4.0 Alpha更新日志

早在2018年8月,整个测试自动化社区就发生了一件重大新闻:Selenium的创始成员Simon Stewart在班加罗尔Selenium会议上正式确认了Selenium 4的发布日期和一些重要更新。 Selenium 4.0 Alpha版...

八音弦
今天
7
0
2、编写程序求Sn=a+aa+aaa+…+aa…aa的值,其中a是1—9之间的一位数字,n表示 a的位数

//编写程序求Sn=a+aa+aaa+…+aa…aa的值,其中a是1-9之间的一位数字, //n表示 a的位数 #include<stdio.h> int main() { int a,n,i,Sn=0,Z=0; printf("please intput a:\n"); scanf("%d",&a......

201905021729吴建森
今天
5
0
Git中的HEAD是什么?

您会看到Git文档说出类似 分支必须在HEAD中完全合并。 但是到底什么是Git HEAD ? #1楼 了解正确答案的一种好方法是运行git reflog HEAD ,您可以获得HEAD所指向的所有位置的历史记录。 #2楼...

技术盛宴
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部