基于 Java 的 SOAP 管道

不推荐使用的功能: 不推荐使用对 Web Service 数据变换服务的基于 JVMSERVER 的配置选项的支持。 使用 CICS® 网络服务的非 Java 管道可替代已废弃的选项、 z/OS Connect Enterprise Edition 或使用 JavaNode.js.更多详情,请参阅稳定化通知

CICS 支持使用 基于 Java™ 的 SOAP 引擎来处理提供者和请求者管道中的网络服务请求。 Axis2 由于 Axis2 使用 Java ,因此 SOAP 处理适合卸载到 IBM® z Systems ® Application Assist Processor (zAAP)。

Axis2 是 Apache 基金会的一个开放源码网络服务引擎,与 CICS 一起提供,用于在 Java 环境中处理 SOAP 消息。 您可以选择使用 Axis2 ,方法是将 Java SOAP 处理程序添加到管道配置文件并创建 JVM 服务器以处理 Axis2 处理。

启用 Axis2 不需要重新生成使用管道的任何现有 Web Service 的绑定文件。 使用 Axis2时,响应时间可能较慢,但您可以将 SOAP 处理卸载到 zAAP。 有关卸载到 zAAP, 请参阅 CICS 和 Java

当 CICS 是服务提供者时,基于 Java 的终端处理程序使用 Axis2 来解析请求消息的 SOAP 包络。 您可以使用头处理程序来处理与 SOAP 消息关联的任何 SOAP 头。 Axis2 还会构造 SOAP 响应消息。 下图中显示了此过程:

请求进入包含传输处理程序,服务处理程序和 Java SOAP 处理程序的管道。 Java SOAP 处理程序在 Axis2中运行,而后者又在 JVM 服务器中运行。 Java SOAP 处理程序还具有头处理程序。 请求将转至服务提供者应用程序,然后通过管道返回响应。

当 CICS 是服务请求者时,管道中基于 Java 的初始处理程序使用 Axis2 为请求消息生成 SOAP 包络。 您可以使用头处理程序来处理与 SOAP 消息关联的任何 SOAP 头。 Axis2 还会解析 SOAP 响应消息。

Web Service 应用程序和 Java

对于提供者方式 SOAP 管道,使用应用程序处理程序在管道的终端处理程序与 Web Service 应用程序之间传递请求和响应消息。 应用程序处理程序处理 SOAP 请求的主体,以便应用程序可以使用该请求。 应用程序处理程序还会使用从应用程序返回的数据生成响应。 如果管道的终端处理程序是基于 Java 的消息处理程序,那么可以在管道配置文件中指定提供的 Axis2 应用程序处理程序,而不是指定提供的 DFHPITP 应用程序处理程序。 然后,可以将应用程序处理程序处理卸载到 zAAP。 有关应用程序处理程序的更多信息,请参阅应用程序处理程序

对于请求者方式 SOAP 管道, Web Service 应用程序使用 EXEC CICS INVOKE SERVICE 命令来调用管道。 然后,在 Web Service 应用程序与管道中的初始处理程序之间传递请求和响应消息。 如果指定基于 Java 的处理程序作为管道中的初始处理程序,那么 EXEC CICS INVOKE SERVICE 命令将由 Axis2处理,从而可以将此进程卸载到 zAAP。 如果第一个处理程序不是基于 Java 的处理程序,那么 CICS将处理 EXEC CICS INVOKE SERVICE 命令。

JVM 服务器中的 Axis2 处理

Axis2 需要 JVM 服务器,该服务器由 CICS中的 JVMSERVER 资源表示。 JVM 服务器是一个运行时环境,可以处理来自单个 JVM 中不同 Java 程序的多个并发请求。 JVM 服务器的类路径必须包含 Axis2 Java 归档文件。 您可以通过在 JVM 概要文件中指定 JAVA_PIPELINE 选项,自动将所有必需的 JAR 文件添加到类路径。 管道配置文件还必须指向配置为支持 Axis2的 JVMSERVER 资源。

有关 JVM 服务器的更多信息,请参阅 CICS 和 Java

Axis2 头处理程序

虽然您可以使用现有头处理程序,但以 Java 编写 Axis2 处理程序来处理 SOAP 头更有效。 这些处理程序也可以在 JVM 服务器中运行,因此适合卸载。 有关创建 Axis2 处理程序的更多信息,请参阅编写自己的 Axis2 模块

头处理程序可以使用 Axis2 API 来修改 Axis2 环境, SOAP 消息和个别 Web Service 或与其交互。 请勿使用这些 API 来定制 Axis2,因为您可能会以一种表示 CICS 无法正确运行引擎的方式来更改 Axis2 。 仅当 Axis2 处理程序以与 CICS 如何使用 Axis2兼容的方式与 Axis2 环境进行交互时,才支持这些处理程序。

Axis2 存储库

Axis2 使用存储库来存储其所有配置文件,服务和模块。 CICS 在 上的 目录中提供默认存储库,其中 z/OS UNIX usshome/lib/pipeline/repository usshome 是 系统初始化参数的值。 USSHOME

缺省存储库包含配置文件 axis2.xml, CICS 需要该文件才能使用 Axis2。 此文件位于存储库的 /conf 子目录中。 如果您创建自己的存储库,那么必须将此文件复制到存储库中,以供 CICS 使用 Axis2。

请勿编辑 axis2.xml 文件,除非您正在注册处理程序。 此文件作为 CICS的内部部分进行管理,因此您不得对此文件进行任何其他更改,除非 IBM 支持人员请求执行此操作。