第三十八章 添加和使用 WS-Addressing 标头元素
2024-06-24 本文已影响0人
Cache技术分享
第三十八章 添加和使用 WS-Addressing 标头元素
本主题描述如何添加和使用 WS-Addressing 标头元素。
简介
可以将 WS-Addressing
标头元素添加到 SOAP
消息中,如 SOAP 1.1
和 SOAP 1.2
的 WS-Addressing
标准所指定。为此,请执行以下操作之一:
- 将
Web
服务或客户端的WSADDRESSING
参数指定为“AUTO
”。此选项会添加一组默认的WS-Addressing
标头元素,将在下一小节中讨论。 - 将
WSADDRESSING
指定为“OFF
”(默认值)并手动添加WS-Addressing
标头元素,如下一小节所述。 - 为
Web
服务或客户端创建策略以包含WS-Addressing
标头元素。为此,需要创建并编译引用Web
服务或客户端的配置类;在此策略中,启用WS-Addressing
。请参阅保护Web
服务。
如果附加这样的策略,IRIS
数据平台默认使用同一组默认 WS-Addressing
标头元素。可以手动创建和添加WS-Addressing
标头元素。
如果附加这样的策略,则会忽略 WSADDRESSING
的值。
对 WSDL 的影响
对于 Web
服务,WSADDRESSING
参数不会影响生成的 WSDL
。同样,如果为 Web
客户端指定此参数,则 WSDL
无需更改。
引用 WS-Addressing
的策略声明确实会影响 WSDL
;如果添加策略声明,则需要重新生成任何 Web
客户端。对于 Web
客户端,只需将 WS-Addressing
策略声明附加到客户端,而不必重新生成客户端类。
默认 WS-Addressing
标头元素
本节描述并展示了默认 WS-Addressing
标头元素的示例。
请求消息中的默认 WS-Addressing
标头元素
如果按照本节前面所述启用 WS-Addressing
,则 Web
客户端将在其请求消息中包含以下 WS-Addressing
标头元素:
- To:destination address
- Action: SoapAction
- MessageID: unique uuid
- ReplyTo: anonymous
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='https://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsi='https://www.w3.org/2001/XMLSchema-instance'
xmlns:s='https://www.w3.org/2001/XMLSchema'
xmlns:wsa='https://www.w3.org/2005/08/addressing'>
<SOAP-ENV:Header>
<wsa:Action>https://www.myapp.org/GSOAP.DivideAddressingWS.Divide</wsa:Action>
<wsa:MessageID>urn:uuid:91576FE2-4533-43CB-BFA1-51D2B631453A</wsa:MessageID>
<wsa:ReplyTo>
<wsa:Address xsi:type="s:string">https://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:To>https://devsys:8080/csp/mysamples/GSOP.DivideAddressingWS.cls</wsa:To>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Divide xmlns="https://www.myapp.org">
<arg1 xsi:type="s:decimal">1</arg1>
<arg2 xsi:type="s:decimal">7</arg2>
</Divide>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>