`
iloveflower
  • 浏览: 80232 次
社区版块
存档分类
最新评论
  • iloveflower: 呵呵。好好学习。。。。。。。。。。。。
    java 读书
  • Eric.Yan: 看了一点,不过是电子版的……你这一说到提醒我了,还要继续学习哈 ...
    java 读书

Axis与CXF比较

阅读更多

新一代的 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 实现,就别劳民伤财了。


CXF:

Support for Standards
JSR Support
•JAX-WS - Java API for XML-Based Web Services (JAX-WS) 2.0 - JSR-224
•Web Services Metadata for the Java Platform - JSR-181
•JAX-RS - The Java API for RESTful Web Services - JSR-311
•SAAJ - SOAP with Attachments API for Java (SAAJ) - JSR-67
WS-* and related Specifications Support
•Basic support: WS-I Basic Profile 1.1
•Quality of Service: WS-Reliable Messaging
•Metadata: WS-Policy, WSDL 1.1 - Web Service Definition Language
•Communication Security: WS-Security, WS-SecurityPolicy, WS-SecureConversation, WS-Trust (partial support)
•Messaging Support: WS-Addressing, SOAP 1.1, SOAP 1.2, Message Transmission Optimization Mechanism (MTOM)
Multiple Transports, Protocol Bindings, Data Bindings, and Formats
•Transports: HTTP, Servlet, JMS, In-VM and many others via the Camel transport for CXF such as SMTP/POP3, TCP and Jabber
•Protocol Bindings: SOAP, REST/HTTP, pure XML
•Data bindings: JAXB 2.x, Aegis, Apache XMLBeans, Service Data Objects (SDO), JiBX
•Formats: XML Textual, JSON, FastInfoset
•Extensibility API allows additional bindings for CXF, enabling additional message format support such as CORBA/IIOP
Flexible Deployment
•Lightweight containers: deploy services in Jetty, Tomcat or Spring-based containers
•JBI integration: deploy as a service engine in a JBI container such as ServiceMix, OpenESB or Petals
•Java EE integration: deploy services in Java EE application servers such as Apache Geronimo, JOnAS, Redhat JBoss, OC4J, Oracle WebLogic, and IBM WebSphere
•Standalone Java client/server
Support for Multiple Programming Languages
•Full support for JAX-WS 2.x client/server programming model
•JAX-WS 2.x synchronous, asynchronous and one-way API's
•JAX-WS 2.x Dynamic Invocation Interface (DII) API
•JAX-RS for RESTful clients
•Support for wrapped and non-wrapped styles
•XML messaging API
•Support for JavaScript and ECMAScript 4 XML (E4X) - both client and server
•Support for CORBA
•Support for JBI with ServiceMix
Tooling
•Generating Code: WSDL to Java, WSDL to JavaScript, Java to JavaScript
•Generating WSDL: Java to WSDL, XSD to WSDL, IDL to WSDL, WSDL to XML
•Adding Endpoints: WSDL to SOAP, WSDL to CORBA, WSDL to service
•Generating Support Files: WSDL to IDL
•Validating Files: WSDL Validation


AXIS2:

Programming Model•Improved, XML-centric client API including full WSDL and policy support
•Support for JAXWS-style services and clients
•Support for POJO and Spring services and clients
•Support for any message exchange pattern
•Synchronous and asynchronous calls
•Archived service deployment model supporting full service encapsulation with versioning support
•Archived module deployment model supporting controlled extensibility with versioning support
•Hot deployment
•WS-Policy driven code generation extensions
•Flexible service life cycle model
•Automatic support for POX (REST) style invocation of services
•Support for querying a service's WSDL (using ?wsdl), schema (using ?xsd) and policies (using ?policy)
•WSDL 2.0
•Custom Deployers
•Binary serialization (Fast Infoset)
•JSON support
•EJB Provider support
Supported Specifications•SOAP 1.1 and 1.2
•Message Transmission Optimization Mechanism (MTOM), XML Optimized Packaging (XOP) and SOAP with Attachments
•WSDL 1.1, including both SOAP and HTTP bindings
•WS-Addressing (submission and final)
•WS-Policy
•SAAJ 1.1
Transports•HTTP
•SMTP
•JMS
•TCP
Supported Data Bindings•Axis Data Binding (ADB)
•XMLBeans
•JibX
•JaxBRI (Experimental)
Tools Included in This Release[Download Tool Plug-ins]

1.Axis2 Web Application (Web App)
2.WSDL2WS- eclipse plug-in/ Command line version/IntelliJ IDEA plug-in/Maven2 WSDL2Code Plug-in
3.Service Archive Wizard- eclipse plug-in/ IntelliJ IDEA plug-in/ Maven2 AAR Plug-in
4.Java2WSDL- Maven2 Java2WSDL Plug-in
Extension Modules•Apache Rampart: Supporting WS-Security (and soon WS-Policy)
•Apache Sandesha2: Supporting WS-Reliable Messaging
(Apache Axis2 comes built in with a module that supports WS-Addressing.)

分享到:
评论

相关推荐

    cxf与axis2区别

    CXF与Axis2框架区别详解 CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2...

    webservice axis2 cxf jar包及简单实例

    本文将深入探讨两种流行的Java Web服务框架——Axis2和CXF,并提供一个简单的实例来帮助理解它们的工作原理和使用方法。 首先,让我们了解一下`Axis2`。Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的...

    Axis和CXF的比较

    ### Axis与CXF的对比分析 #### 一、概述 在现代软件开发中,Web服务技术扮演着重要的角色,特别是SOAP(Simple Object Access Protocol)基于的Web服务,它允许应用程序通过HTTP进行通信并交换数据。在众多实现...

    Axis2与CXF的对比

    Apache Axis2和CXF都是Java世界中非常知名的Web服务框架,它们主要用于构建和部署Web服务。两者各有特色,适用于不同的应用场景。以下是对这两个框架特点、区别及适用场合的详细对比,以及它们在效率上的表现。 1. ...

    Axis2,CXF版本学习笔记

    4. **Spring集成**:CXF与Spring框架的良好集成,使得服务的配置和管理更加灵活。 5. **安全性**:学习如何实现WS-Security和其他安全策略,确保Web服务的安全通信。 在深入学习这两个框架时,你可能还会关注如何...

    cxf客户端调用axis服务端流程

    在Java开发中,CXF和Axis是两种广泛使用的Web服务框架。CXF主要用来创建和消费SOAP和RESTful Web服务,而Axis则是Apache组织早期推出的一款Web服务框架,主要用于SOAP服务。本文将深入探讨如何使用CXF客户端调用Axis...

    Axis1,Axis2,Xfire,CXF区别

    与 Axis1 相比,XFire 的性能有了质的提高,XFire 比 Axis1.3 快 2-6 倍,XFire 的响应时间是 Axis1.3 的 1/2 到 1/5。XFire 的灵活性更高,Binding 机制更加灵活。 Axis2 是另一种新一代的 WebService 平台,它的...

    如何使用Axis_CXF创建WS服务

    使用axis和CXF实现web service的说明文档。

    Axis-cxf-WebService.zip

    总的来说,这个"Axis-cxf-WebService.zip"压缩包提供了一个很好的学习和比较两种Java WebService实现的平台。通过研究这些示例,开发者可以深入理解如何在Java环境中创建、部署和消费Web服务,这对于任何涉及分布式...

    搜集网上的资料总结的XFire,Axis2,CXF的对比

    性能对比方面,根据提供的资料,CXF在无WS-Security的性能测试中与Axis2和Metro相当。但在使用WS-Security时,CXF明显优于Axis2,尤其是在处理大量响应时,性能差距更为显著。这意味着在安全性要求较高的场景下,CXF...

    WebService Axis和XFire(CXF)的开发流程

    【WebService Axis和XFire(CXF)的开发流程】 在IT领域,WebService是一种基于XML的通信标准,用于构建分布式系统中的应用程序接口(API)。本篇主要介绍两种常用的WebService框架——Axis和XFire(现已被CXF合并)...

    axis cxf 创建webservice

    ### 使用Axis/CXF创建WebService详解 #### Axis/CXF概述 - **Axis**: 是Apache软件基金会提供的用于构建和调用Web服务的开源项目。 - **Axis2**: Axis的下一代产品,改进了性能并提供了更好的模块化架构。 - **CXF*...

    WebServices开发-Axis实例CXF实例

    CXF的亮点在于其易于使用,强大的代码生成工具,以及与Spring框架的紧密集成,这使得在企业级应用中部署和管理WebServices变得非常方便。 在"ESBTest_Axis"中,你可能会找到关于如何使用Axis创建和消费WebServices...

    WebService流行框架之Axis和CXF=.docx

    CXF相比于Axis2,提供了更现代的特性和更好的性能,支持更多的协议和标准,如WS-I Basic Profile,WS-Security等,同时其与Spring的集成使得服务管理和依赖注入更加方便。 在选择WebService框架时,应考虑项目需求...

    myService_purpose1sv_cxf调用axis2的接口服务_接口服务_

    在描述中,“用框架cxf调用axis2提供的接口服务的一个简单例子”,意味着我们将探讨一个简单的CXF客户端如何与Axis2服务端进行交互。这通常涉及到以下步骤: 1. **创建CXF客户端**:首先,我们需要创建一个CXF...

    cxf+spring+axis包

    将CXF与Spring结合,可以利用Spring的管理能力来更方便地配置和控制Web服务。 Axis是Apache的SOAP栈,主要用于构建和部署SOAP Web服务。它提供了一个简单的命令行工具,用于生成服务客户端和服务器端的代码,简化了...

    axis2-1.8.0apache-cxf-3.4.4.rar

    在实际开发中,开发者通常会使用Axis2来创建服务,然后使用CXF来提供更高级的功能,如REST支持和与其他系统的互操作性。 在压缩包文件名称列表中,我们只看到了"axis2-1.8.0apache-cxf-3.4.4",这意味着压缩包内...

    axis1.2、cxf框架

    4. **Spring集成**:CXF与Spring框架深度集成,使得服务的配置和管理更加简便,可以利用Spring的依赖注入和AOP(面向切面编程)能力。 5. **调试与测试工具**:CXF提供了一套强大的调试和测试工具,如CXF的WS-...

    关于WebService的实例及相关axis/apache-cxf的应用

    与Axis相比,CXF提供了更丰富的功能,包括更好的WS-*(如WS-Security、WS-ReliableMessaging等)支持和更好的性能。 在实际应用中,创建一个WebService通常包括以下步骤: 1. 定义服务接口:这通常涉及编写Java接口...

    webservice :spring 3+cxf3.4服务方,AXIS1.4请示方调用

    ### WebService技术应用:Spring 3 + CXF 3.4与Axis 1.4的交互 在现代软件开发中,Web服务作为一种重要的技术手段,被广泛应用于不同系统之间的通信。其中,Spring框架与Apache CXF是实现RESTful或SOAP风格的Web...

Global site tag (gtag.js) - Google Analytics