你可以到http://www.kuaff.com下载本篇文档的pdf版以及升级版,我会不定期的进行文档的补充和完善。
XFire是codehaus推出的下一代的java SOAP框架,通过提供简单的API和支持标准协议,你可以方便的开发面向服务的程序。内建在STAX基于流的XML解析引擎的基础上,XFire拥有很高的性能。相对Axis来说,目前它的人气指数相当的高,加上和String集成,在目前的java webservices开源社区非常的受欢迎,也被多个开源项目所集成。这篇文档将通过实例带你进行Xfire简单开发之旅。通过一系列的实际例子,带你进入的XFire的webservices世界。
XFire拥有以下的特性:
<!--[if !supportLists]-->² <!--[endif]-->支持重要的web服务标准,如SOAP、WSDL、WS-I、WS-Addressing、WS-Security基本概要等
<!--[if !supportLists]-->² <!--[endif]-->高性能的SOAP 栈设计
<!--[if !supportLists]-->² <!--[endif]-->可插拔的绑定,支持POJO、XMLBeans、JAXB1.1、JAXB2以及castor
<!--[if !supportLists]-->² <!--[endif]-->jsr 181规范
<!--[if !supportLists]-->² <!--[endif]-->支持多种传输协议:HTTP, JMS, XMPP, In-JVM等
<!--[if !supportLists]-->² <!--[endif]-->可嵌入式的API
<!--[if !supportLists]-->² <!--[endif]-->支持Spring、Pico、Plexus、Loom容器
<!--[if !supportLists]-->² <!--[endif]-->JBI支持
<!--[if !supportLists]-->² <!--[endif]-->客户端和服务器端的存根创建工具
<!--[if !supportLists]-->² <!--[endif]-->JAX-WS的早期支持
通过下表你可以看到XFire和其它框架的SOAP 栈的实现的比较(2006年3月30日):
一般特性:
特性 |
Axis 1.2.x |
Axis 2 (0.9) |
Celtix |
Glue |
JBossWS |
XFire |
Basic Profile 1.1 Compliant |
X |
X |
X |
X |
X |
X |
Castor Support |
X |
|
|
|
|
X |
Easily Embedded |
|
X |
X |
X |
|
X |
DIME |
X |
|
|
X |
|
|
Easily Create Services from POJOs |
|
|
X |
X |
|
X |
JAXB 1.1 |
X |
|
|
|
X |
X |
JAXB 2.0 |
|
|
X |
|
|
X |
JAX-RPC |
X |
|
|
X? |
X |
|
JAX-WS |
|
|
X |
|
|
|
JBI (See ServiceMix) |
? |
|
X |
|
|
X |
JSR 181 |
X |
|
X |
|
X |
X |
JSR 181 on Java 1.4 |
|
|
|
|
|
X |
MTOM |
|
X |
|
|
X |
1.1 Beta+ |
Open Source |
X |
X |
X |
|
X |
X |
RPC-Encoding |
X |
|
|
X |
X |
|
SAAJ |
X |
X? |
X |
X |
? |
1.2 |
Soap 1.1 |
X |
X |
X |
X |
X |
X |
Soap 1.2 |
X |
X |
|
X |
X |
X |
Soap w/ Attachments |
X |
? |
|
X |
X |
Scheduled for 1.1 |
Streaming XML (StAX based) |
|
Inbound ONLY |
|
|
|
X |
WSDL 1.1 Support |
X |
X |
X |
X |
X |
X |
WSDL 2.0 Support |
|
Post 1.0? |
|
|
|
1.2 |
WSDL->Code (Client) |
X |
X |
X |
X |
X |
X |
WSDL->Code (Server) |
X |
X |
X |
X |
X |
X |
XMLBeans Support |
X |
X |
|
|
|
X |
容器集成
特性 |
Axis 1.x |
Axis 2.x |
Celtix |
Glue |
JBossWS |
XFire |
Spring |
X |
|
X |
|
|
X |
Plexus |
|
|
|
|
|
|
Loom |
|
|
|
|
|
X |
传输方式
特性 |
Axis 1.x |
Axis 2.x |
Celtix |
Glue |
JBossWS |
XFire |
Http |
X |
X |
X |
X |
X |
X |
JMS |
X |
X |
X |
X |
X |
X |
Jabber |
Experimental |
|
|
|
|
X |
SMTP |
X |
X |
|
|
|
|
Web服务扩展标准(WS-*)
特性 |
Axis 1.x |
Axis 2.x |
Celtix |
Glue |
JBossWS |
XFire |
Addressing |
X |
X |
X |
X |
X |
X |
Eventing |
|
|
|
|
|
|
Notification |
? |
? |
|
? |
|
|
ReliableMessaging |
X |
X |
X |
? |
|
|
Security |
X |
X |
|
X |
X |
1.1 Beta+ |
这篇文档将从下面几个开发方面来介绍Xfire的应用:
<!--[if !supportLists]-->² <!--[endif]-->配置XFire
<!--[if !supportLists]-->² <!--[endif]-->简单的Web服务
<!--[if !supportLists]-->² <!--[endif]-->jsr181风格的Web服务
<!--[if !supportLists]-->² <!--[endif]-->xmlbeans风格的Web服务
<!--[if !supportLists]-->² <!--[endif]-->访问天气预报web服务
<!--[if !supportLists]-->² <!--[endif]-->和axis、axis2交互
<!--[if !supportLists]-->² <!--[endif]-->和asp.net交互
<!--[if !supportLists]-->² <!--[endif]-->集成String
<!--[if !supportLists]-->² <!--[endif]-->其他WebServices规范
本篇文档中介绍的例子都是采用Eclipse开发,应用服务器是tomcat。