你可以到http://www.kuaff.com下载本篇文档的pdf版以及升级版,我会不定期的进行文档的补充和完善。
XFire是codehaus推出的下一代的java SOAP框架,通过提供简单的API和支持标准协议,你可以方便的开发面向服务的程序。内建在STAX基于流的XML解析引擎的基础上,XFire拥有很高的性能。相对Axis来说,目前它的人气指数相当的高,加上和String集成,在目前的java webservices开源社区非常的受欢迎,也被多个开源项目所集成。这篇文档将通过实例带你进行Xfire简单开发之旅。通过一系列的实际例子,带你进入的XFire的webservices世界。
XFire拥有以下的特性:
² 支持重要的web服务标准,如SOAP、WSDL、WS-I、WS-Addressing、WS-Security基本概要等
² 高性能的SOAP 栈设计
² 可插拔的绑定,支持POJO、XMLBeans、JAXB1.1、JAXB2以及castor
² jsr 181规范
² 支持多种传输协议:HTTP, JMS, XMPP, In-JVM等
² 可嵌入式的API
² 支持Spring、Pico、Plexus、Loom容器
² JBI支持
² 客户端和服务器端的存根创建工具
² 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的应用:
² 配置XFire
² 简单的Web服务
² jsr181风格的Web服务
² xmlbeans风格的Web服务
² 访问天气预报web服务
² 和axis、axis2交互
² 和asp.net交互
² 集成String
² 其他WebServices规范
本篇文档中介绍的例子都是采用Eclipse开发,应用服务器是tomcat。