实现隐式和显式SOAP消息头
用户可以使用通常称为显式和隐式消息头在 WSDL 定义中定义 SOAP 消息头。本文学习这两种样式之间的区别以及在使用 JAX-RPC 进行开发时这些区别是如何影响您的。
SOAP 规范描述了 SOAP 信封可以包括一个可选的消息头部分。该消息头用来传输并不属于实际消息的有效载荷部分的数据。WSDL 规范定义了如何将 SOAP 消息头数据声明为 Web 服务定义的一部分。在 WSDL 定义中有两种定义 SOAP 消息头的方式:显式和隐式消息头 。
SOAP 消息头的样式
SOAP 消息头的典型应用是用来传送上下文的数据。例如,如果消息中包括数字签名,那么此签名将最有可能在 SOAP 消息头中传送。另一个例子是用于 Web服务,这些服务支持与客户端之间进行某些形式的会话。一旦建立了这样的会话,它们就要应该将特定的标识符与每个请求一起发送。 WS-AtomicTransaction 规范(参阅 参考文献) 同时还描述了一种非常类似的机制, 这种机制用于在多个Web 服务之间运行交互的协调性序列。
WSDL 规范提供了两种不同的识别 SOAP 消息头字段用法的方法。在显式消息头中,用户将消息头的所有信息添加给服务的 portType 了。它作为附加的参数显示给客户端。这种样式的优点在于客户端能够直接将所有的信息传送给该服务。其不足之处就是它经常将服务的外部接口和与它的业务意图毫不相干的信息群集在一起。
下面是使用隐式消息头的好处:消息头信息并不是 portType 的一部分,因此不会影响服务的功能性接口。另一方面,隐式消息头很难作为标题以编程的方式处理。
在更加深入了解有关编程方面的详细信息之前, 我们来看一看这些不同的样式是如何定义的。
WSDL 中 SOAP 消息头的绑定类型
描述 SOAP 头不同演示的最简单方式就是从实例开始讲述。下面清单 1 中的 WSDL 摘录是摘自以前的解释 SOAP 消息头用法的一篇文章:
清单 1. WSDL 中 SOAP 消息头的绑定 http://soapheader.ibm.com" ...>
...
type="intf:StockService">
"http://schemas.xmlsoap.org/soap/http"/>
part=
"request_header" use="literal"/>
...
您能够看到在 WSDL 文件的绑定部分中特别的位置上使用了一个名为的元素。它包含在 元素中,该元素告诉用户在该处存在 SOAP 消息头片断,可作为操作的部分请求消息。 元素的内容能够识别在消息头中传送的消息部分。
这样做显得非常简洁易懂,但这是显式消息头还是隐式消息头?显然,从上面的摘录来看,不能准确区分。它其实可以是两种方式的任意一种,这是因为:消息头绑定定义了消息 intf:getLastSellPriceRequest 中名为 request_header 的部分,而它又是 SOAP 信封的消息头部分。这种消息头样式依赖于此消息部分是否被用于 Web 服务的 portType 中。让我们详细地研究一下这两种情况。
显式消息头
如果消息头是服务 的一部分,那么就可以调用消息头定义显式。换句话说,名为 request_header 的消息部分必需在 portType 中使用,如 清单 2 所示。
清单 2. WSDL 中的显式 SOAP 消息头
name="parameters"/>
"getLastSellPriceRequest"/>
"getLastSellPriceResponse"/>
请注意名为 getLastSellPriceRequest 的消息包括两部分。一部分加入到SOAP 请求消息的消息体部分,另一部分加入到消息头中。清单 3 显示了 WSDL 文件的相关部分,WSDL 文件显示了这两个部分:
清单 3. WSDL - SOAP 绑定中的显式 SOAP 头
"request_header" use="literal"/>
元素定义了 Web 服务的外部接口。它定义了哪些数据要作为请求消息的一部分发送。如果这些请求数据在该请求消息的 SOAP 消息头部分中传送,那么用户就可以调用这个显式消息头。该操作同样分别适用于部分(或者全部)的响应消息被定义为头元素的情况。
- 1哪些配套产品帮南京OA画龙点睛
- 2浅谈KM在国内企业中的发展应用
- 3如何利用财务管理系统来管理好收入
- 4警惕 还原卡不是安全解决方案
- 5财务信息化:融资租赁管理之道
- 6南京OA实务利用约当产量分摊成本
- 7可视化BI 应用关键是什么
- 8南京OA之后是否引入SCM?
- 9中小企业信息化的法律环境分析
- 10企业如何规划和实施知识管理系统
- 11复杂事件处理技术是推动SOA发展的引擎
- 12软件生产模式转向传统 将形成精细化产业链
- 13走出“人事管理” 瞄准“人才战略”
- 14服务商瞄准中小企业IT需求
- 15精益生产之路 南京OA是基石
- 16泛普OA系统ThinkOneOA系统在建筑施工行业有着极为丰富的经验
- 17南京OA实务:业务流程评述之销售订单变更
- 18中小企业搭建企业网络营销流程的建议
- 19南京OA实施中最恐怖的事情:需求变更
- 20ESB实现SOA 企业复杂集成的解决
- 21技术并非唯一缺陷 解析南京OA祸首
- 22服务构造是SOA实施的关键
- 23企业如何进行南京OA项目招标
- 24脱离流程变革 伪南京OA成带剌玫瑰
- 25如何处理BPM与SOA的关系
- 26财务信息化:融资租赁的管理之道
- 27南京OA办公软件有哪些?
- 28小型企业对OA办公软件系统需求才是最旺盛的
- 29“否定之否定”:南京OA实施期待升级
- 30是时候为SOA注入新活力