在 Spring 集成 XFire 开发 webservice
java_webservice 2008-12-21 18:08 阅读 85评论 0
Spring 是目前最流行的 JavaEE Framework,但是使用 Spring 的 Spring-WS 开发 WebService 却十分繁
琐。XFire 是一个简化 WebService 开发的开源项目,通过 Spring 和 XFire 的结合可以大大简化基于
Spring Framework 的应用中的 WebService 开发。
XFire 是完全基于流数据处理进行工作的系统,这意味着 XFire 不是将整个 SOAP 文档缓存在内存中,而
是以管道的方式接收 SOAP 流数据。这种工作方式的转变带来了可观的性能回报,同时节省了内存的占
用。
对于习惯了 Axis、GLUE 等这些基于 DOM 处理模型 Web Service 框架的开发者来说,需要一些时间来适
应这种转变。
XFire 从管道中接收一个 SOAP 请求到返回一个 SOAP 响应,会经历一系列的阶段。在管道调用的任何一
个阶段,XFire 都可以添加一些额外的 Handler,在对消息进行加工处理后再传入到下一个阶段中。图 1 展
示了 XFire 管道从接收 SOAP 请求到返回 SOAP 响应所经历的所有阶段:
图 1 XFire Web Service 请求和响应的过程
在 SOAP 请求消息对 Web Service 发起真正调用之前,分别会经过传输(Transport)、预转发
(PreDispatch)、转发(Dispatch)、策略实施 (Policy)、用户信息处理(User)、预调用
(PreInvoke)、服务调用(Service Invocation)等阶段。当,Web Service 调用后,XFire 生成响应
SOAP 消息并通过管道发送给客户端请求者,这一过程会先后经历调用后(PostInvoke)、用户信息处理
(User)、策略实施(Policy)、传输(Transport)这四个阶段。每一个阶段都是一个可控点,通过编写
并注册一些相应的 Handler 就 可以实施一些额外处理逻辑,如审计、SOAP 消息加密、签名、压缩等。
评论5