第三十七章 添加和使用自定义标题元素 - 自定义标头的继承

第三十七章 添加和使用自定义标题元素 - 自定义标头的继承

自定义标头的继承

如果创建此Web 服务的子类,该子类将继承不特定于方法的标头信息 — 包含在 <request><response> 元素中的标头信息,这些元素是 <parameters>. 的直接子元素。即使 SOAPMETHODINHERITANCE0,情况也是如此。

示例

另一个示例如下:

XData service
{
<parameters xmlns="https://www.intersystems.com/configuration">
  <response>
    <header name="Header2" class="User.Header4" alias="Header4"/>
    <header name="Header3" class="User.Header3"/>
  </response>
  <method name="echoBase64">
    <request>
      <header name="Header2" class="User.Header4" alias="Header4"/>
      <Action>https://soapinterop.org/Round2Base.Service.echoBase64Request</Action>
    </request>
    <response>
      <header name="Header2" class="User.Header2" alias="Header2"/>
      <header name="IposTransportHeader" class="ipos.IposTransportHeader"/>
      <Action>https://soapinterop.org/Round2Base.Service.echoBase64Result</Action>
    </response>
  </method>
  <method name="echoString">
    <request>
      <Action>https://soapinterop.org/Round2Base.Service.echoStringRequest</Action>
    </request>
    <response>
      <Action>https://soapinterop.org/Round2Base.Service.echoStringAnswer</Action>
    </response>
  </method>
</parameters>
}

SOAPHEADERS 参数中指定支持的标头元素

指定支持的标头元素的旧方法是在 Web 服务或 Web 客户端类中包含 SOAPHEADERS 参数。

此参数必须等于以逗号分隔的标头规范列表。每个标头规范均具有以下格式:

headerName:headerPackage.headerClass

其中 headerName 是受支持标头的元素名称,headerPackage.headerClass 是代表该标头的类的完整包和类名称。例如:

Parameter SOAPHEADERS = "MyHeaderElement:Scenario1Client.MyHeaderElement" 

此列表标识了对此 Web 服务或客户端的 SOAP 请求中支持的所有标头,并指明了每个标头映射到的类。

如果使用此较旧的技术,请注意以下几点:

  • 对于 Web 服务,此技术不会影响生成的 WSDL
  • 无法为特定的 Web 方法指定不同的标头元素。
  • SOAP 向导不再在生成的 Web 服务和客户端类中生成 SOAPHEADERS 参数。
  • 此技术已被弃用。

自定义标头的继承

如果创建此 Web 服务的子类,则该子类将继承 SOAPHEADERS 参数。即使 SOAPMETHODINHERITANCE0,情况也是如此。

对于每个受支持的标头元素,服务或客户端都会创建相应标头类的实例,并将标头添加到入站标头数组,即 HeadersIn 属性。此属性是一个具有常用数组接口的数组(例如,SetAt()Count()GetAt() 方法)。然后,Web 服务或 Web 客户端可以根据需要对这些标头采取行动。

注意:header 元素命名空间不用于匹配列表中的 header 元素。但是,SOAP 消息中的 header 元素命名空间必须与 header 元素子类中的 NAMESPACE 参数指定的命名空间相同;否则,导入消息时会出现错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yaoxin521123

谢谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值