- 浏览: 157911 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (130)
- Database (5)
- JavaSE (23)
- JavaScript (11)
- Struts2 (15)
- Hibernate (11)
- Spring (16)
- Linux (4)
- Jquery (3)
- Tools (12)
- Jsp (7)
- 杂谈 (9)
- WEB Project (10)
- WebService (16)
- maven (2)
- android (1)
- memcache (2)
- 网络通信 (4)
- solr (1)
- cxf (7)
- powerdesigner (1)
- jxls (1)
- springmvc (1)
- nosql (1)
- node.js (0)
- thrift (0)
- REST (1)
- tag (1)
最新评论
原文地址:http://494078416.iteye.com/blog/682781
CXF
最新版本: 2.2.2
开源服务框架,可以通过API ,如JAX-WS , 构建和开发服务。服务可以使多种协议的,例如SOAP, XML/HTTP, RESTful HTTP, CORBA ,并可以工作与多种传输协议之上,如HTTP ,JMS ,JBI 。
主要特性
l 支持 Webservice 标准:包括 SOAP, the Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, 和 WS-Security 。
l 前端( Frontend ):支持多种前端编程模型。CXF 实现了JAX-WS API 。它包含一个简单的前端,可以创建客户端和端点而不需要注释。既支持协议优先的WSDL 开发,也支持代码优先的Java 开发。
l 易用性:可以通过简单的API 快速构建代码优先的服务,简化模具集成的Maven 插件,支持JAX-WS API, 支持Spring 2.0 XML 来配置一个子网访问协议。
l 支持二进制和遗留协议:提供了一个插件式的体系结构,支持XML 和非XML 类型的绑定,如JSON 和 CORBA 。
目标
l 整体
• 高性能
• 可扩展
• 直观易用
l 支持的标准
• JAX-WS, JAX-WSA, JSR-181, and SAAJ
• SOAP 1.1, 1.2, WS-I BasicProfile, WS-Security, WS-Addressing, WS-RM 和 WS-Policy
• WSDL 1.1 和 2.0
• MTOM
l 多种传输,绑定,数据绑定和格式
• 绑定: SOAP, REST/HTTP
• 数据绑定: JAXB 2.0, Aegis, XMLBeans. ( 将在下一版本中支持Castor 和 JiBX)
• 格式: XML, JSON
• 传输: HTTP, Servlet, JMS, and Jabber transports
• 可扩展 API 允许附加的绑定,支持附加的消息格式,如CSV 。
l 灵活的部署
• 轻量级容器: 在 Tomcat 或 基于Spring 的容器中部署服务
• JBI 集成: 作为服务引擎部署在JBI 容器中,如 ServiceMix, OpenESB 或 Petals
• SCA 集成: 在SCA 容器中部署,例如Tuscany
• J2EE 集成: 在J2EE 应用程序中部署服务,如 Geronimo, JOnAS, JBoss, WebLogic, 和 WebSphere
• 独立式 Java client/server
l 支持多种编程语言
• 完全支持 JAX-WS 2.0 client/server 编程模型
• JAX-WS 2.0 同步, 异步 和 one-way API's
• JAX-WS 2.0 动态请求接口 (DII) API
• 支持打包和未打包的形式
• XML 消息 API
• 支持 JavaScript and ECMAScript 4 XML (E4X) - both client and server
• Support for CORBA with Yoko
• Support for SCA withTuscany
• Support for JBI with ServiceMix
l 代码生成
• Java to WSDL
• WSDL to Java
• XSD to WSDL
• WSDL to XML
• WSDL to SOAP
• WSDL to service
Axis
最新版本: 1.4
Axis 是 Apache 组织推出的 SOAP 引擎, Axis 项目是 Apache 组织著名的 SOAP 项目的后继项目, 但是 Axis 不仅仅是一个 SOAP 引擎,它还包括:
1) 个独立运行的 SOAP 服务器
2) 一个 servlet 引擎的插件,这个 servlet 引擎可以是 Tomcat
3) 对 WSDL 的扩展支持
4 ) 一个将 WSDL 的描述生成 JAVA 类的工具
5) 一些示例代码
6) 还有一个监控 TCP/IP 包的工具
主要特性
l 速度: Axis 使用 SAX (event-based) 语法分析,与早期版本的 Apache SOAP 相比,速度有显著提高。
l 灵活性:Axis 体系结构使开发者可以自由的向引擎中插入扩展。
l 稳定性: Axis 定义了一组公共的接口。
l 面向组件的部署:可以简单地定义可复用的处理机网络,来实现应用程序的通用处理方式 或分发给合作者。
l 传输框架:有一个简洁的设计传输的抽象,引擎的核心完全独立于传输。 We have a clean and simple abstraction for designing transports (i.e., senders and listeners for SOAP over various protocols such as SMTP, FTP, message-oriented middleware, etc), and the core of the engine is completely transport-independent.
l 支持WSDL : Axis 支持WSDL1.1 ,可以简单的构建访问远程服务的桩(stub ), 还可以自动将部署的服务从Axis 导出为机器可识别的描述。
Axis2
最新版本: 1.5
体系结构
Axis2 具有模块化体系结构,由核心模块和非核心模块组成。据说,Axis2 核心是纯 SOAP 处理引擎,并没有包含 Java™ API for XML-based RPC (JAX-RPC) 概念作为其核心的一部分。同时,Axis2 体系结构的设计充分考虑了以下原则:
• 逻辑和状态分离,以提供无状态处理机制,因为 Web 服务是无状态的。
• 所有信息位于一个信息模型中,允许对系统进行挂起和恢复。
• 能够在不更改核心体系结构的情况下扩展功能,能以最小或没有核心更改的情况下直接支持新 Web 服务规范。
Axis2 核心体系结构包括以下核心和非核心组件:
• 核心组件 ◦ XML 对象模型 (AXIOM)
◦ SOAP 处理模型:处理程序框架
◦ 信息处理模型:上下文和描述
• 其他组件 ◦ 部署模型
◦ 传输
◦ 客户机 API
◦ 核心生成模型
主要特性
· 速度 - Axis 使用 SAX (event-based) 语法分析,与早期版本的 Apache SOAP 相比,速度有显著提高。
· 内存占用低 - Axis2 was designed ground-up keeping low memory foot print in mind.
· AXIOM - Axis2 comes with its own light-weight object model, AXIOM, for message processing which is extensible, highly performant and is developer convenient.
· 热部署 - Axis2 is equipped with the capability of deploying Web services and handlers while the system is up and running. In other words, new services can be added to the system without having to shut down the server. Simply drop the required Web service archive into the services directory in the repository, and the deployment model will automatically deploy the service and make it available for use.
· 异步web 服务 - Axis2 now supports asynchronous Web services and asynchronous Web services invocation using non-blocking clients and transports.
· 支持MEP - Axis2 now comes handy with the flexibility to support Message Exchange Patterns (MEPs) with in-built support for basic MEPs defined in WSDL 2.0.
· 灵活性 - Axis 体系结构使开发者可以自由的向引擎中插入扩展。
· 稳定性 - Axis 定义了一组公共的接口。
· 面向组件的部署 - 可以简单地定义可复用的处理机网络,来实现应用程序的通用处理方式 或分发给合作者。
· 传输框架 - 有一个简洁的设计传输的抽象,引擎的核心完全独立于传输。 We have a clean and simple abstraction for designing transports (i.e., senders and listeners for SOAP over various protocols such as SMTP, FTP, message-oriented middleware, etc), and the core of the engine is completely transport-independent.
· 支持WSDL - Axis 支持WSDL1.1 ,可以简单的构建访问远程服务的桩(stub ), 还可以自动将部署的服务从Axis 导出为机器可识别的描述。
· 插件 - Several Web services specifications have been incorporated including WSS4J for security (Apache Rampart), Sandesha for reliable messaging, Kandula which is an encapsulation of WS-Coordination, WS-AtomicTransaction and WS-BusinessActivity.
· 组成和可扩展性 - Modules and phases improve support for composability and extensibility. Modules support composability and can also support new WS-* specifications in a simple and clean manner. They are however not hot deployable as they change the overall behavior of the system.
Xfire
XFire 是 codeHaus 组织提供的一个开源框架,它构建了 POJO 和 SOA 之间的桥梁,主要特性就是支持将 POJO 通过非常简单的方式发布成 Web 服务,这种处理方式不仅充分发挥了 POJO 的作用,简化了 Java 应用转化为 Web 服务的步骤和过程,也直接降低了 SOA 的实现难度,为企业转向 SOA 架构提供了一种简单可行的方式。
主要特性
XFire 目前最新的版本是 1.2.6 ,目前支持的特性主要包括:
• 支持将 Web 服务绑定到 POJO 、XMLBeans 、JAXB1.1 、JAXB2.0 和 Castor ;
• 支持基于 HTTP 、JMS 、XMPP 等多种协议访问 Web 服务;
• 支持多种 Web 服务业界重要标准如 SOAP 、WSDL 、Web 服务寻址(WS-Addressing )、Web 服务安全(WS-Security )等;
• 支持 JSR181 ,可以通过 JDK5 配置 Web 服务;
• 高性能的 SOAP 实现;
• 服务器端、客户端代码辅助生成;
• 对 Spring 、Pico 、Plexus 等项目的支持等。
比较
Axis1.X VS Axis2
Axis2 不仅是 Apache 的新 Web 服务框架。它还体现了从 Axis 1.x 系列获得的经验和最近两年在 Web 服务领域的发展。推出 Axis2 的主要原因之一是从速度和内存方面获得更好的性能—— 不过还添加了一些新特性和功能。大部分新特性都是为了提高 Axis2 的易用性,并同时保留通过各种方式扩展功能的空间。大部分新功能所添加到的主要领域如下所示:
新 XML 对象模型 (AXIOM)
与 Axis 1.x 相比,Axis2 构建于全新的体系结构之上。引入 Axis2 的主要原因之一是获得合适的 XML 处理模型。Axis 1.x 使用 DOM 作为其 XML 表示机制,但使用 DOM 的缺点是,需要在内存中保存完整的对象层次结构(与传入消息对应)。对于小消息,这将不是问题,但对于大型消息就是问题了。为了克服此问题,Axis2 引入了新的 XML 表示形式作为其基础。
基于消息传递的核心
Axis2 核心是纯 SOAP 处理引擎,并不了解数据绑定、传输、WSDl 等内容。Axis2 核心的主要功能是处理传输消息,并将其交付给目标应用程序。与 Axis 1.x 一样,Axis2 也具有用于扩展其主要功能的处理程序概念。
Axis 1.x 并没有异步 Web 服务调用的概念,它完全绑定到请求- 响应调用,但在 Axis2 中却是另一番景象。Axis2 体系结构能够支持在客户端和服务器端同时支持异步调用。同时,Axis2 也支持请求- 响应样式的调用,但这会以两个异步调用的方式进行。在 Axis2 中,进入系统的消息可能有也可能没有响应,应该注意,Aixs2 支持 WSDL 2.0 中定义的所有八种消息交换模式(Message Exchange Patterns ,MEP )。
Axis2 具有流的概念,流是阶段的集合,而阶段是处理程序的集合。根据给定方法调用的 MEP ,与其关联的流的数量可能会有所变化。
部署模型
在 Axis 1.x 中,用户必须手动调用管理客户机,并更新服务器类路径,然后重新启动服务器,以应用更改。这个有点麻烦的部署模型对新手肯定是一道障碍。Axis2 经过了精心的设计,能够克服此缺点,并提供灵活、用户友好、可方便进行配置的部署模型。Axis2 部署引入了类似于 Java™ 2 Platform Enterprise Edition (J2EE) 部署机制的概念,开发人员可以在其中将所有类文件、库文件、资源文件和配置文件一起打包为存档文件,并将其放置在文件系统中的指定位置。
模块体系结构
在 Axis 1.x 中,要添加处理程序,需要首先更改全局配置文件,然后需要重新启动系统,并没有在运行时更改处理程序链的动态方法。为了克服这个问题和增加新特性,Axis2 引入了 Web 服务扩展或模块的概念;其中模块的主要工作是对核心功能进行扩展。在 Axis 1.x 中,可以通过向处理程序链添加处理程序来实现此目标。与 Axis 1.x 处理程序链相比,使用模块的优势在于,您可以在根本不改变全局配置文件的情况下添加新模块。同时,模块是一个自容器,其中可以包含处理程序、第三方库、模块相关资源和模块配置文件。
XFire VS Axis
XFire 是与Axis2 并列的新一代WebService 平台。之所以并称为新一代,因为它:
1. 支持一系列Web Service 的新标准--JSR181 、WSDL2.0 、JAXB2 、WS-Security 等;
2. 使用Stax 解释XML, 性能有了质的提高。XFire 采用Woodstox 作Stax 实现;
3. 容易上手,可以方便快速地从pojo 发布服务;
4. Spring 的结合;
5. 灵活的Binding 机制,包括默认的Aegis,xmlbeans,jaxb2,castor 。
XFire 与Axis1 性能的比较
XFire 比Axis1.3 快2-6 倍
XFire 的响应时间是Axis1.3 的1/2 到1/5
XFire 与Axis2 的比较
虽然XFire 与Axis2 都是新一代的WebService 平台,但是Axis2 的1.0 版本还不是一个稳定的版本。在XFire 捐献给apache 后有人认为Axis2 将会灭亡。在很多人眼里,Axis2 并不是pojo 形式,Dan Diephouse 证明了XFire 比Axis 更有市场。用XFire 进行WebService 的开发比Axis2 简单很多。
AXIS VS CXF
在SOA 领域,我们认为Web Service 是SOA 体系的构建单元(building block )。对于服务开发人员来说,AXIS 和CXF 一定都不会陌生。这两个产品都是Apache 孵化器下面的Web Service 开源开发工具。 Axis2 的最新版本是1.3.CXF 现在已经到了2.0 版本。
这两个框架 都是从已有的开源项目发展起来的。Axis2 是从Axis1.x 系列发展而来。CXF 则是XFire 和Celtix 项目的结合产品。Axis2 是从底层全部重新实现,使用了新的扩展性更好模块架构。 CXF 也重新的深化了XFire 和Celtix 这两个开发工具。
新产品的退出导致了几个问题。是不是现有的使用Axis 1.x ,XFire 和Celix 的应用需要迁移的新的版本上。如果一个开发人员确定要迁移它的应用到新的框架上,那么他应该选择哪一个呢?相反的,如果一个开发者决定从头开发一个新的Web Service ,他应该使用哪个呢? 这两个框架哪一个更好一些呢?
对于系统迁移来说,也许迁移到新的框架并不难。Axis 和CXF 都提供了迁移的指导。能够给开发者一些迁移的技巧和经验。但是对于这样迁移,这两个开源项目都没有提供迁移的工具。对于这样的迁移工作,尽管很值得去寻找所有的可行方案。Axis2 和CXF 都有各自不同的WebService 开发方法,每个方法都有相当数量拥护者。
通过一个比较矩阵来比较Axis2 和CXF 变得有现实的意义。这两个项目都开发不够成熟,但是最主要的区别在以下几个方面:
1.CXF 支持 WS-Addressing ,WS-Policy , WS-RM , WS-Security 和WS-I Basic Profile 。Axis2 不支持WS-Policy ,但是承诺在下面的版本支持。
2. CXF 可以很好支持Spring 。Axis2 不能
3. AXIS2 支持更广泛的数据并对,如XMLBeans ,JiBX ,JaxMe 和JaxBRI 和它自定义的数据绑定ADB 。注意JaxME 和JaxBRI 都还是试验性的。CXF 只支持JAXB 和Aegis , 并且默认是 JAXB 2.0 。
4. Axis2 支持多语言- 除了Java, 他还支持C/C++ 版本。
比较这两个框架的Web Service 开发方法与比较它们的特性同样重要。 从开发者的角度,两个框架的特性相当的不同。 Axis2 的开发方式类似一个小型的应用服务器,Axis2 的开发包要以WAR 的形式部署到Servlet 容器中,比如Tomcat ,通过这些容器可以对工作中的Web Service 进行很好的监控和管理。Axis2 的Web administrion 模块可以让我们动态的配置Axis2. 一个新的服务可以上载,激活,使之失效,修改web 服务的参数。管理UI 也可以管理一个或者多个处于运行状态的服务。这种界面化管理方式的一个弊端是所有在运行时修改的参数没有办法保存,因为在重启动之后,你所做的修改就会全部失效。
Axis2 允许自己作为独立的应用来发布Web Service ,并提供了大量的功能和一个很好的模型,这个模型可以通过它本身的架构(modular architecture )不断添加新的功能。有些开发人员认为这种方式对于他们的需求太过于繁琐。这些开发人员会更喜欢CXF 。
CXF 更注重开发人员的工效(ergonomics )和嵌入能力(embeddability )。大多数配置都可以API 来完成,替代了比较繁琐的XML 配置文件, Spring 的集成性经常的被提及,CXF 支持Spring2.0 和CXF's API 和Spring 的配置文件可以非常好的对应。CXF 强调代码优先的设计方式(code-first design) ,使用了简单的API 使得从现有的应用开发服务变得方便。
不论选择Axis2 还是CXF ,都可以从开源社区得到大量的帮助。这两个框架都有商业公司提供服务,WSO2 提供AXIS2 的支持,Iona 提供CXF 的支持。这两公司都有很活跃的开发者社区。 Axis2 出现的时间较早,CXF 的追赶速度快。如果需要多语言的支持,应该选择AXIS2 。如果需要把的实现侧重JAVA 并希望和Spring 集成,CXF 就是更好的选择,特别是把Web Service 嵌入其他的程序中。
发表评论
-
RESTFUL实现主流框架 CXF、Restlet、RESTEasy、Jersey对比
2013-10-21 10:37 1517http://blog.csdn.net/jianxuan/ ... -
CXF-WebClient客户端调用,配置JacksonProvider转换器的方法
2012-12-17 11:31 2809java语言调用cxf-rest服务,可以通过CXF-WebC ... -
远程通信技术实现原理(RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS)
2012-12-10 15:16 840在分布式服务框架中, ... -
HTTP Keep-Alive详解
2012-12-07 10:15 828HTTP Keep Alive HTTP Keep-Alive ... -
关于“无状态的HTTP连接提供有状态的连接"
2012-12-07 09:58 1258HTTP是无状态链接,请求 ... -
cxf-rest 配置JSonProvider 来定制JSON的转换格式
2012-12-06 17:08 1418关于CXF JSonProvider CXF通过JSonPro ... -
myeclipse 开发webservice 方法
2012-06-14 18:33 660见附件::: -
基于CXF的JAX-WS、JAX-RS(RESTful)的webService
2012-06-14 15:51 1515原文链接:http://www.open-open.com/l ... -
JAVA中的Web服务规范:jax-ws|jax-rs|jaxm
2012-06-13 17:13 1304JAVA 中共有三种WebService 规范,分别是JAXM ... -
主题:Web Service实践之——开始XFire
2012-06-13 16:29 640原文链接: http://www.ite ... -
java 调用webservice的各种方法总结
2012-06-13 16:13 893原文链接:http://www.blogjava.n ... -
修改cxf rest的返回时间格式
2011-09-19 18:19 937参考:http://stackoverflow.com/que ... -
CXF与spring集成
2010-12-06 12:58 917原文链接:http://blog.csdn.net/pengc ... -
使用 JAX-RS 简化 REST 应用开发
2010-12-06 12:56 1369<!-- Related_Searches_Area_A ... -
xfire webservices图文介绍详细步骤(附源码)<转>
2010-03-25 09:32 1006http://www.iteye.com/topic/6218 ...
相关推荐
Axis1, Axis2, Xfire, CXF 区别 Axis1, Axis2, Xfire, CXF 是四种常用的WebService框架,它们之间有着不同的特点和应用场景。本文将对这四种框架进行详细的比较和分析,以帮助开发者选择合适的框架。 XFire 是一种...
CXF与Axis2框架区别详解 CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2...
1、以下四个类调用了XmlSchema-1.1.jar包 因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11....
本文主要对比了三种流行的Java Web服务框架:XFire、Axis2和CXF,以帮助开发者做出最佳选择。 首先,CXF是一个由Apache基金会维护的重量级SOA(面向服务架构)框架,它支持ESB(企业服务总线),并实现了Web服务、...
2. **XFire (CXF)**:XFire(现为Apache CXF)是一个更现代的框架,它集成了Spring,使得服务端的开发更加简单,因为大部分逻辑都被封装到了底层API中。XFire支持直接配置生成WSDL,且能与Spring无缝集成,简化了...
本篇文章详细介绍了WebService的基本概念和AXIS、XFire、CXF这三个流行的Java WebService框架,以及授权认证和加密解密在WebService中的应用。这些内容对于理解和实践WebService开发具有重要价值,为开发者提供了...
本文将深入探讨两种流行的Java Web服务框架——Axis2和CXF,并提供一个简单的实例来帮助理解它们的工作原理和使用方法。 首先,让我们了解一下`Axis2`。Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的...
本压缩包文件提供了关于Web服务开发的详细指南,特别关注了三个主流的Java Web Service框架:Axis、XFire和CXF。 1. **Axis**:是由Apache软件基金会开发的开源SOAP(Simple Object Access Protocol)引擎,它是...
与其他Web Service框架(如Axis2、CXF等)相比,XFire在轻量级、易用性和速度方面具有优势。然而,随着项目的发展和需求的变化,开发者可能需要考虑更全面的框架,如CXF,它在功能和社区支持上更加强大。 总结来说...
Axis2 是一个强大的 Web Service 开发框架,由 Apache 软件基金会开发,它提供了用于构建和部署 Web Services 的全面工具集。版本 1.6.2 是 Axis2 的一个稳定版本,它在该框架的发展历程中扮演了重要的角色。 在 ...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。这个"apache-cxf-2.4.6.zip"压缩包包含了CXF框架的2.4.6版本,这是一个相对早期的版本,发布于2012年。在深入探讨CXF之前,...
**CXF**,全称为CXF XFire eXtended,是另一个强大的Java WebServices框架。CXF不仅支持SOAP,还支持RESTful风格的服务,提供了对JAX-WS和JAX-RPC的全面支持。CXF的亮点在于其易于使用,强大的代码生成工具,以及与...
在Java开发中,有时我们需要处理Web服务,而Axis和XFire是两个著名的Java Web服务框架。这两个工具都允许开发者创建、部署和消费Web服务,但它们各有特点和用途。 **Axis**是由Apache软件基金会开发的一个开源项目...
在Java开发中,有时我们可能需要整合不同的框架或者库,比如Apache CXF和XFire,这两个都是用于构建Web服务的框架。然而,由于它们都包含了处理XML Schema(XmlSchema)的相关组件,可能会出现jar包冲突的问题,导致...
- **第三方框架**:如Apache CXF、Apache Axis、XFire等专门针对Web Service的开源框架。 #### 三、Apache CXF框架介绍 - **CXF框架背景**: - CXF最初源自XFire项目,随着XFire的发展停滞,其源码被捐赠给了...
本篇文章将深入探讨三个流行的Java Web Service框架:XFire、CXF和Axis,它们都是用于构建和消费Web服务的重要工具。 1. **XFire**: XFire是早期的Web服务实现,它提供了一个轻量级、高性能的框架,支持SOAP 1.1...
在Java中,有多个流行的WebService框架,其中包括AXIS、XFire以及本文主要讨论的Apache CXF。 AXIS是早期广泛使用的Java WebService框架,它提供了一种简单的方式来创建和消费Web服务,支持SOAP和WSDL。然而,随着...
与Axis2、Gson等其他框架相比,CXF在性能、易用性和功能方面都有其优势。例如,CXF对JAX-RS的支持更加全面,而且它的代码生成工具和调试工具也更为强大。 总的来说,"apache-cxf-2.4.10"是一个适用于构建和部署Web...
标题中的"axis-jax-ws-xfire.rar_jax"提到了三个关键术语:Axis、JAX-WS和XFire,这些都是与Java Web服务(Web Service)开发密切相关的技术。让我们详细了解一下这些概念及其在Java环境中的应用。 1. **Axis**: ...