2024年5月29日发(作者:)

使用XFire开发webservice服务和客户端全攻略 收藏

XFire 是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service

各项标准协议,帮助你方便快速地开发Web Service应用。

相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的

Web Service开源社区拥有众多的追随者。并且因为XFire为Spring提供的支持,使得我们

可以很容易在Spring中使用XFire构建Web Service应用。

XFire 与Axis2相比具有如下特征:

l 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security

等;

l 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现;

l 容易上手,可以方便快速地从pojo发布服务;

l 支持Spring、Pico、Plexus、Loom等容器;

l 灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;

l 高性能的SOAP 栈设计;

l 支持Spring、Pico、Plexus、Loom等容器。

XFire 与Axis1性能的比较如下:

l XFire 比Axis1.3快2-6倍;

l XFire 的响应时间是Axis1.3的1/2到1/5。

XFire 在WebService框架中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将

Web Service的应用开发难度降到最低。此外,还提供了各种绑定技术、支持多种传输协议,

对WebService体系中许多新的规范提供了支持。

下面让我们来看一个XFire于Spring集成的helloWorld的简单例子。

一.实现的功能和特点

本例具有如下功能和特点:

1) 基于J2EE平台的Web Service服务;

2) 开发方便,配置简单;

3) 与spring无缝集成。

XFire 是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存

在内存中,而是以管道的方式接收SOAP流数据。这种工作方式的转变带来了可观的性能

回报,同时节省了内存的占用。

XFire 从管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。在

管道调用的任何一个阶段,XFire都可以添加一些额外的Handler,在对消息进行加工处理

后再传入到下一个阶段中。在SOAP请求消息对Web Service发起真正调用之前,分别会经

过传输、预转发、转发、策略实施、用户信息处理、预调用、服务调用等阶段。

二.开发环境

笔者的开发环境描述如下:

1) jdk: 1.5 版本;

2) Tomcat :5.5.20;

3) MyEclipse: 5.1.1 GA 。

三.开发步骤

1. 工程与环境的建立

在 MyEclipse中新建Web工程,名为webservice_helloworld。选择该工程后,点击右键选择

MyEclipse->Add Web Service Capabilities,弹出Add Web Service Capabilities对话框,点击

“Next”,弹出Project Library Configuration对话框,默认选择Core Libraries,点击“Finish”

按钮,完成XFire核心包的添加。为了后续的客户端的测试,还需读者加入commons-

包到WEB-INF/lib下。

部署后可看到此时WEB-INF/lib的jar包列表如下:

、 、、commons-

、、、jaxws-api- 、、

jsr173_、、、 、、

、、 、、、

xfire-aegis- 、、、xfire- 、

、、xfire- 、

为了后续的开发和测试,在src目录下分别建立test和webservice目录,分别用于存放测试

文件和webservice的相关类。