美文网首页
第三十四章 添加和使用自定义标题元素 - 支持的标头元素

第三十四章 添加和使用自定义标题元素 - 支持的标头元素

作者: Cache技术分享 | 来源:发表于2024-06-20 07:50 被阅读0次

第三十四章 添加和使用自定义标题元素 - 支持的标头元素

支持的标头元素

IRIS 网络服务和客户端自动支持 WS-AddressingWS-Security 标头,但不自动支持其他标头。

要在 Web 服务或客户端中指定支持的标头元素,请向类添加 XData 块并指定类参数 USECLASSNAMESPACESXData 块列出了支持的元素。类参数使 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

必需的标题元素

如果给定的报头元素指定 mustUnderstand=1,则该元素被视为强制元素,接收者必须支持它。除非接收者识别所有强制报头元素,否则接收者无法处理该消息。

按照 SOAP 标准, 会拒绝包含必需但不受支持的标头元素的 SOAP 消息。具体来说,如果 Web 服务或客户端收到包含 mustUnderstand=1 的标头元素的消息,并且该服务或客户端不支持该标头元素,则该服务或客户端会发出 SOAP 错误,然后忽略该消息。

定义自定义标题元素

如果使用 SOAP 向导根据给定的 WSDL 创建 Web 服务或 Web 客户端,系统将生成类来根据需要表示任何标题元素。

如果手动创建 Web 服务或客户端,则必须手动定义类来表示任何自定义标头元素。具体操作如下:

  1. 对于每个自定义标题元素,创建 %SOAP.Header 的子类。
  2. 指定 NAMESPACE 参数来指示标头元素的命名空间。
  3. 指定 XMLNAME 参数来指示标题元素的名称。
  4. 在子类中,定义属性以包含您需要的标头信息。默认情况下,属性将投影到 <Header> 元素内的元素。
  5. 可选地指定 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 version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope [parts omitted]>
  <SOAP-ENV:Header>
    <MyHeader xmlns="https://www.myheaders.org"
                     xmlns:hdr="https://www.myheaders.org">
      <Subelement1>abc</Subelement1>
      <Subelement2>def</Subelement2>
    </MyHeader>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
   [omitted]
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

相关文章

  • TreeSet

    treeSet添加自定义元素:支持排序的集合类 treeSet要注意的事项:1. 往TreeSet添加元素的时候,...

  • 自动化js定位技术

    1.使用js定位页面元素和修改元素 删除只读属性后就可以操作元素,可以自定义清楚和添加值,此类方法用于定位复杂元素...

  • 13、添加元素的几种方式

    添加元素的几种方式: (1)append() 父元素.append(子元素),把子元素添加到父元素的末尾 新创建标...

  • 按钮

    可作为按钮使用的标签或元素 a,button,input元素添加按钮类即可使用 导航和导航条组件只支持button...

  • html 拖动事件(drag event )分析

    如何使元素支持拖动 图片和链接默认就支持拖拽.其他html元素添加 draggable="true" 属性可支持拖...

  • 字典的常见操作

    添加或更新元素 使用下标添加或更新元素 使用 updateValue(_:forKey:) 方法添加或更新元素,返...

  • CSS小tip整理

    1.利用css在列表靠头和末尾添加箭头: 2.让父元素包含浮动的子元素: 添加一个进行清理的元素 让父元素浮动,并...

  • JavaScript数组方法总结

    改变原数组 队列操作shift() 删除队头元素,返回删除的元素unshift(...items) 队头添加元素,...

  • OneActionBar-通用标题头ActionBar封装

    OneActionBar 使用说明 简介 自定义ActionBar,支持属性,java代码方式配置,可实现标题,标...

  • 2019-06-03 完善clearfix,表单,框架集,css

    完善clearfix 子元素和父元素相邻的垂直外边距会发生重叠,子元素的外边距会传递给父元素 使用空的table标...

网友评论

      本文标题:第三十四章 添加和使用自定义标题元素 - 支持的标头元素

      本文链接:https://www.haomeiwen.com/subject/dyyccjtx.html