头处理程序接口

CICS提供的 SOAP 1.1 和 SOAP 1.2 消息处理程序链接到使用通道 DFHHHC-V1的头处理程序。 在通道上传递的容器包括几个特定于头处理程序接口的容器,以及可供管道中所有头处理程序和消息处理程序访问的 上下文容器用户容器 的集合。

容器 DFHHEADER 特定于头处理程序接口。 其他容器在管道中的其他位置可用,但在头处理程序中具有特定用途。 此类别中的容器是 DFHWS-XMLNS , DFHWS-BODY 和 DFHXMLSS-PARSE。
注: 虽然使用 Axis2 来处理 SOAP 消息的 Web Service 可以使用头处理程序接口,但以 Java 编写您自己的 Axis2 处理程序来处理 SOAP 头更有效。 有关创建 Axis2 处理程序的更多信息,请参阅 编写您自己的 Axis2 模块

容器 DFHHEADER

当调用头处理程序时, DFHHEADER 包含导致头处理程序被驱动的单个头块。 如果在管道配置文件中使用 <mandatory>true</mandatory><mandatory>1</mandatory> 指定了头程序,那么即使 SOAP 消息中没有匹配的头块,也会调用该头程序。 在这种情况下,容器 DFHHEADER 的长度为零。 调用头处理程序以将头块添加到没有头块的 SOAP 消息时就是这种情况。

CICS® 创建的 SOAP 消息最初没有头。 如果要向消息添加头,必须通过指定 <mandatory>true</mandatory><mandatory>1</mandatory>来确保至少调用一个头处理程序。

当头程序返回时,容器 DFHHEADER 必须包含 CICS 在 SOAP 消息中插入的零个,一个或多个头块,以代替原始头块:
  • 您可以返回未更改的原始头块。
  • 您可以修改头块的内容。
  • 您可以将一个或多个新头块附加到原始块。
  • 您可以将原始头块替换为一个或多个不同的块。
  • 您可以完全删除头块。

容器 DFHWS-XMLNS

调用头处理程序时, DFHWS-XMLNS 包含有关 SOAP 包络中声明的 XML 名称空间的信息。 头程序可以使用此信息来执行以下任务:
  • 解析它在头块中迂到的限定名
  • 在新的或已修改的头块中构造限定名。
名称空间信息由名称空间声明列表组成,这些声明使用标准 XML 表示法来声明名称空间。 DFHWS-XMLNS 中的名称空间声明以空格分隔。 例如:
xmlns:na='http://abc.example.org/schema' xmlns:nx='http://xyz.example.org/schema'

通过将更多名称空间声明附加到 DFHWS-XMLNS 的内容,可以将这些声明添加到 SOAP 包络。 但是,作用域为 SOAP 头块或 SOAP 主体的名称空间最好分别在头块或主体中声明。 建议您不要在头处理程序中从容器 DFHWS-XMLNS 中删除名称空间声明,因为在该程序中不可见的 XML 元素可能依赖于它们。

容器 DFHWS-BODY

此容器包含 SOAP 包络的主体部分。 头处理程序可以修改内容。

调用头处理程序时, DFHWS-BODY 包含 SOAP <Body> 元素。

当头程序返回时,容器 DFHWS-BODY 必须再次包含有效的 SOAP <Body>, CICS 会将其插入 SOAP 消息以代替原始消息:
  • 您可以返回未更改的原始主体。
  • 您可以修改主体的内容。
不能完全删除 SOAP 主体,因为每条 SOAP 消息都必须包含 <Body> 元素。

容器 DFHXMLSS-PARSE

在管道配置中使用 <cics_soap_1.1_handler><cics_soap_1.2_handler> 元素并调用头程序时, DFHXMLSS-PARSE 包含该头的 XML 系统服务 (XMLSS) 记录。 当使用 <cics_soap_1.1_handler_java><cics_soap_1.2_handler_java> 元素时,不会创建此容器。

控制,上下文和用户容器

与所描述的容器一样,接口在通道 DFHHHC-V1上传递 控制容器上下文容器用户容器