使用SAAJ 和JAXM的 SOAP客户端及服务
本模块讲述了如何使用用于JavaTM 的带附件的SOAP(SAAJ)和用于XML消息的Java TM API(JAXM)创建能够发送和接收消息的客户端,以及如何部署它们到Sun ONE Application Server上。本模块包括以下几节:
SOAP客户端
本节讲述了SOAP客户端可以采用的两种消息模型以及开发和部署这类客户端的过程。本节包括以下主题:
SOAP客户端消息模型
可以使用以下两种消息模型建立SOAP客户端
没有消息提供者的客户端
不使用消息提供者的应用程序只能交换同步消息。也就是说,扮演客户端角色的应用程序只能发送请求-响应消息。这种类型的客户端采用SAAJ API的SOAPConnection方法。下图演示了在没有消息提供者的情况下,同步消息如何在发送者和接收者之间交换。
不使用消息提供者的SOAP消息
使用消息提供者的客户端具有以下优点:可以采用J2SE平台编写应用程序。
不需要在servlet或J2EE容器中部署应用程序。
不需要配置消息提供者。
不使用消息提供者的客户端具有以下局限性:
客户端只能发送请求-响应消息
客户端只能扮演客户端角色
使用消息提供者的客户端
如果想要获得并且保存在任何时间发送给你的请求,你必须使用消息提供者。JAXM API提供了使用消息提供者发送和接收消息的框架。你需要在容器中运行客户端,容器提供了消息基础结构让提供者使用。下图演示了在使用消息提供者的情况下,异步消息如何在发送者和接收者之间交换。
使用消息提供者的SOAP消息
使用消息提供者的客户端具有以下优点:客户端能够扮演客户端或者服务角色
客户端能够切换消息传递给提供者
在客户端传递消息到最终接收者之前,它能够发送消息到一个或多个目的地。这些中间的消息接收者被称为actor,它们在消息的SOAPHeader对象中被指定。
客户端能够利用任何提供者支持的SOAP消息协议和影响消息类型与可靠性的‘服务质量’,以及消息传递服务的质量。
注意
Sun ONE Application Server包含了一个示例JAXM提供者,它演示了如何使用提供者为发送客户端激活“发后不理(fire and forget)”消息。请察看示例文档获取关于如何激活、部署和使用它的全面信息。示例应用程序可以从以下位置得到:
install_dir/samples/webservices/jaxm/jaxm-provider/
Sun ONE Application Server的未来版本将会包括支持可靠SOAP消息和ebXML消息的JAXM提供者。