建设旅游网站系统,如何让建设一个简单的网站,唐山seo设计网站,高端的金融行业网站开发文章目录 第三十四章 添加和使用自定义标题元素 - 支持的标头元素支持的标头元素标头元素和 WSDL必需的标题元素 定义自定义标题元素 第三十四章 添加和使用自定义标题元素 - 支持的标头元素
支持的标头元素
IRIS 网络服务和客户端自动支持 WS-Addressing 和 WS-Security 标头… 文章目录 第三十四章 添加和使用自定义标题元素 - 支持的标头元素支持的标头元素标头元素和 WSDL必需的标题元素 定义自定义标题元素 第三十四章 添加和使用自定义标题元素 - 支持的标头元素
支持的标头元素
IRIS 网络服务和客户端自动支持 WS-Addressing 和 WS-Security 标头但不自动支持其他标头。
要在 Web 服务或客户端中指定支持的标头元素请向类添加 XData 块并指定类参数 USECLASSNAMESPACES。XData 块列出了支持的元素。类参数使 WSDL 包含适用的类型。请参阅指定支持的标头元素。
标头元素和 WSDL
Web 服务的 WSDL 公布了该 Web 服务所支持的标头元素以及与该 Web 服务通信的 Web 客户端所允许的标头元素。
对于 IRIS Web 服务生成的 WSDL 可能不包含有关 SOAP 标头元素的信息
如果通过设置 HeadersOut 属性手动添加 SOAP 标头请确保按照指定支持的标头元素中所述在 XData 块中声明它们。同时在 Web 服务类中将类参数 USECLASSNAMESPACES 指定为 1。
如果遵循这些步骤WSDL 将包含所有适用信息。否则WSDL 将不包含所有适用信息必须将 WSDL 保存到文件中并根据需要手动编辑它。
如果通过设置 SecurityOut 属性来添加 WS-Security 标头如“保护 Web 服务”中所述WSDL 将不包含所有需要的信息。这是因为 WSDL 是在编译时生成的而标头是在运行时添加的。在这种情况下请将 WSDL 保存到文件中并根据需要手动编辑它。
出于多种原因使用 WS-Policy 添加 WS-Security 元素更简单、更容易。使用 WS-Policy生成的 WSDL 包含所有需要的信息。
在其他情况下生成的 WSDL 包含所有需要的信息。
请注意W3C 规范并不要求 Web 服务提供生成的 WSDL。
必需的标题元素
如果给定的报头元素指定 mustUnderstand1则该元素被视为强制元素接收者必须支持它。除非接收者识别所有强制报头元素否则接收者无法处理该消息。
按照 SOAP 标准 会拒绝包含必需但不受支持的标头元素的 SOAP 消息。具体来说如果 Web 服务或客户端收到包含 mustUnderstand1 的标头元素的消息并且该服务或客户端不支持该标头元素则该服务或客户端会发出 SOAP 错误然后忽略该消息。
定义自定义标题元素
如果使用 SOAP 向导根据给定的 WSDL 创建 Web 服务或 Web 客户端系统将生成类来根据需要表示任何标题元素。
如果手动创建 Web 服务或客户端则必须手动定义类来表示任何自定义标头元素。具体操作如下
对于每个自定义标题元素创建 %SOAP.Header 的子类。指定 NAMESPACE 参数来指示标头元素的命名空间。指定 XMLNAME 参数来指示标题元素的名称。在子类中定义属性以包含您需要的标头信息。默认情况下属性将投影到 Header 元素内的元素。可选地指定 XMLFORMAT 参数该参数控制此标头元素的格式。默认情况下标头元素始终采用文字格式而不是 SOAP 编码。
Class Scenario1.MyHeaderElement Extends %SOAP.Header
{Parameter NAMESPACE https://www.myheaders.org;Parameter XMLNAME MyHeader;Property Subelement1 As %String;Property Subelement2 As %String;}此标头元素在 SOAP 消息中显示如下
?xml version1.0 encodingUTF-8 ?
SOAP-ENV:Envelope [parts omitted]SOAP-ENV:HeaderMyHeader xmlnshttps://www.myheaders.orgxmlns:hdrhttps://www.myheaders.orgSubelement1abc/Subelement1Subelement2def/Subelement2/MyHeader/SOAP-ENV:HeaderSOAP-ENV:Body[omitted]/SOAP-ENV:Body
/SOAP-ENV:Envelope