2007-09-30
如何正确地在Axis、Axis2和Apache CXF之间抉择?
关键字: axis axis2 cxf spring
新一代的 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 实现,就别劳民伤财了。
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 实现,就别劳民伤财了。
评论
咖啡舞者
16 小时前
xly_971223 写道
问一下用多少网站在真正的用web sevice?有多少网站真正的使用了axis cxf。天天都在有新框架诞生, 如果程序员要一个一个去学,岂不是太累了。
在我看来 如果网站不需要对外公布service,只是内部模块见交互,则完全可以自己去定义web service协议,越简单越好 能解决问题就好。httpclient就是个不错的选择
在我看来 如果网站不需要对外公布service,只是内部模块见交互,则完全可以自己去定义web service协议,越简单越好 能解决问题就好。httpclient就是个不错的选择
在XFIRE中就有用到了HTTPCLIENT。
如果仅用HTTPCLIENT实现远程通信service,虽然这样可以达到web service的目的,但开发效率太低。
而且接口不友好。
不知道我的理解对不对。因为我现在项目中开发分布式的系统也只是HttpClient加XML来进行数据交互,成本低但开发效率也很低。
kevin002
2008-02-02
现在用的是XFIRE感觉用着很简单,功能也不错.
freeflyfree
2008-01-28
jnn 写道
jxauyhj 写道
如果要做成被 delphi .net等都好调用的话 哪个会好点??
我们做过一些CXF与.net之间的互操作性测试,应该问题不大。
我最近做的一个项目需要调用.net做的web service,对方返回的是一个自定义对象的数组
类似:
对象为 user,返回一个user的数组
不知道如何能接收这种对象数组?我测试了只能接收基本类型的数组。
homesailing
2008-01-08
并且一些ws-*规范都可以通过这些ide来进行配置。我觉得很方便、很稳定、很安全!
homesailing
2008-01-08
lyo 写道
Axis和很多开源包使用的xml解析器都冲突,每次用都遇到问题,特别是再websphere下部署webservice就是恶梦. 有时间看看 CXF!
为何说在was下部署ws时噩梦?
如果用rad6/7开发ws,然后部署上基于axis引擎的was,同部署常规ear,war应用没有区别。
wtslh
2008-01-07
项目中,有个运行中心,要提供很多个服务,允许多种语言开发的软件进行访问,而运行中心也要访问外部的很多个服务(不一定是什么语言开发的)。关于框架的采用,希望给些建议,谢谢
jnn
2007-12-22
CXF支持client端的异步调用功能,这个功能是JAXWS 规范中定义的。
agile_boy
2007-12-21
AXIS2好像支持异步操作,CXF支持么?
jnn
2007-12-18
今天突然翻到Dan Diephouse 写的有关CXF 和 Axis的区别,建议有兴趣的朋友读一读。
http://www.nabble.com/Re%3A-Axis2-vs-CXF-p11481341.html
jnn
2007-12-17
[quote="xly_971223"]问一下用多少网站在真正的用web sevice?有多少网站真正的使用了axis cxf。天天都在有新框架诞生, 如果程序员要一个一个去学,岂不是太累了。 在我看来 如果网站不需要对外公布service,只是内部模块见交互,则完全可以自己去定义web service协议,越简单越好 能解决问题就好。httpclient就是个不错的选择[/quote]
有点不太懂, httpclient和WebServers 有什么直接的联系呢?
还要如果想研究网站提供的服务 你可以看看Yahoo, Google, Amazon...
有点不太懂, httpclient和WebServers 有什么直接的联系呢?
还要如果想研究网站提供的服务 你可以看看Yahoo, Google, Amazon...
rEloaD_cn
2007-12-17
aixs2比较好,支持好多新的ws-* 。还可以支持模块增加
cxf不了解
cxf不了解
fjiis
2007-12-11
从CXF在TOMCAT下输出的日志看,基本上是SOAP:Envelope与SOAP-ENV:Envelope的差别,请求的参数都有包含在这里面了,可为什么进行service.java时DELPHI客户端请求的参数变成了null?有人知道吗?
fjiis
2007-12-11
请问我用DELPHI7.0做客户端测试与CXF互操作性时发生客户端请求参数发到CXF时变成null了!这是为什么?用JAVA写的客户端又没有问题
xly_971223
2007-12-10
问一下用多少网站在真正的用web sevice?有多少网站真正的使用了axis cxf。天天都在有新框架诞生, 如果程序员要一个一个去学,岂不是太累了。
在我看来 如果网站不需要对外公布service,只是内部模块见交互,则完全可以自己去定义web service协议,越简单越好 能解决问题就好。httpclient就是个不错的选择
在我看来 如果网站不需要对外公布service,只是内部模块见交互,则完全可以自己去定义web service协议,越简单越好 能解决问题就好。httpclient就是个不错的选择
sslaowan
2007-12-09
jxauyhj 写道
如果要做成被 delphi .net等都好调用的话 哪个会好点??
用过Xfire和Delphi的互操作,没什么问题
sslaowan
2007-12-09
jxauyhj 写道
如果要做成被 delphi .net等都好调用的话 哪个会好点??
fenixshadow
2007-12-04
转载请注明出处
jnn
2007-10-29
jxauyhj 写道
如果要做成被 delphi .net等都好调用的话 哪个会好点??
我们做过一些CXF与.net之间的互操作性测试,应该问题不大。
aone
2007-10-29
lyo 写道
Axis和很多开源包使用的xml解析器都冲突,每次用都遇到问题,特别是再websphere下部署webservice就是恶梦. 有时间看看 CXF!
是的,axis和jfreechart就有冲突.
jxauyhj
2007-10-28
如果要做成被 delphi .net等都好调用的话 哪个会好点??
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 581411 次
- 性别:

- 来自: 福建莆田@广州

- 详细资料
搜索本博客
我的相册
力拔千斤
共 146 张
共 146 张
最近加入圈子
链接
- 超越黎明
- CJSDN
- CSDN
- JavaWorld@TW
- JavaEye
- Spring中文论坛
- Matrix
- BEA dev2dev
- Agile Tao Forum
- Flickr
- developerWorks
- TheServerSide
- Sun Java Forum
- JavaRanch
- 满江红开源
- del.icio.us
- Sun中国技术社区
- 希赛网中国软考
- AJAX Design Patterns
- CSS: The Missing Manual
- Java Persistence with Hibernate
- Script in Java
- Building Spring 2 Enterprise Applications
- Tuscany中文社区
- 我爱人开的购物店,欢迎光临
最新评论
-
如何正确地在Axis、Axis2 ...
xly_971223 写道问一下用多少网站在真正的用web sevice?有多少 ...
-- by 咖啡舞者 -
如何在JavaScript中实现某 ...
afcn0 写道首先js是单线程的,lz的想法就不对,那是多线程,现在基本除了X ...
-- by andyhu1007 -
Script in Java中文版Java ...
司令很强大啊,呵呵
-- by fantasybei -
BEAer Last Day, Tomorrow ...
祝福司令, Bea亲密接触快一年了吧? 有什么感言呢? 和大家share一下吧 ...
-- by beckdim -
再叫我“小英雄”,我就揍 ...
有个小英雄好像被保送清华了
-- by beckdim






评论排行榜