webservice 框架比较

本文对比了Axis2与Apache CXF两个Webservice框架的特点,提供了选择迁移或继续使用旧框架的建议,并介绍了XML与JSON的数据交换格式,以及SOAP、WSDL在Webservice中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

毕业了,一直更新技术博客,也跳槽到一家上市的公司,他们产品的主要通讯是通过Webservice,以前对Webservice 只是做了大致的了解,今天就在网上找一些开源的知识点,现在市面上主流的夸平台传送有JSON和SOAP两种数据格式,总结一下。以下转自至 http://yulimin.iteye.com/blog/128498

新一代的 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 
以下来自与http://blog.sina.com.cn/s/blog_afb4d07f0101aciz.html
如何抉择: 
1、如果应用程序需要多语言的支持,Axis2 应当是首选了; 
2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 来说; 
3、如果应用程序没有新的特性需要的话,就仍是用原来项目所用的框架,比如 Axis1,XFire,Celtrix 或 BEA 等等厂家自己的 Web Services 实现,就别劳民伤财了。

.XML与JSON比较

   首先,XML与JSON的目前主要的两种数据交换格式。
   其结构如下:
   XML:
   <?xml version="1.0" encoding="utf-8">
   <country>
     <name>中国</name>
     <province>
       <name>黑龙江</name>
       <citys>
            <city>哈尔滨</city>
            <city>大庆</city>
         </citys>
       </province>
   </country>
       
  json:
 {name:"中国",province:[
 {name:"黑龙江",citys:
 {city:["哈尔滨","大庆"]}}
 ]}
 可以看出,json的结构要比xml的简单,这就决定了json解析起来要比xml容易。

2.XML,SOAP,WSDL的关系
在构建和使用Web Service时,主要用到一下几个关键的技术和原则:
1),XML:描述数据的标准方法。
2),SOAP:表示信息交换的协议。
3),WSDL:Web服务描述语言。
SOAP就是用来最终完成Web服务调用的,而WSDL则用于描述如何使用SOAP来调用Web服务,方便用户获得SOAP的种种好处。

SOAP:一种轻量的、简单的、基于XML的协议,被设计成在Web上交换结构化的和固化的信息,独立于平台,独立于语言,允许绕过防火墙。实质就是HTTP+XML。
使用:
SOAP 是个通信协议,SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数,放下HTTP BODY上提交到WEB SERVICE服务器处理完成后,结果也写成XML作为RESPONSE送回用户端,为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。

WSDL:wsdl文件是一个xml文档,用于说明一组 SOAP 消息及如何交换这些信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值