支持 WebSphere MQ 的应用程序调用 Web service

本方案显示了使用 WebSphere MQ 在处理消息时调用 Web service 的应用程序。MIME 域用于此示例。该方案的消息流以及得到的消息树如下:

该图显示了从消息流发送和接收消息的支持 MQ 的外部客户机。消息流包含 MQInput 节点,该节点连接到名为 Compute1 的 Compute 节点。然后, Compute 节点将连接至 HTTPRequest 节点。HTTPRequest 节点向外部 Web service 发出请求,并接收响应。然后,该消息发送到名为 Compute2 的第二个 Compute 节点上。然后,该节点连接到 MQOutput 节点,该 MQOutput 节点将应答消息发送回 MQ 客户机。

当 MIME 消息进入消息流时,Content-Type 以及任何其他顶级 MIME 头都将存储在 MIME 树中。代理也将消息的 Content-Type 副本存储为 Properties 子树中的 ContentType 值。下图显示了消息树离开 MQInput 节点后的某些部分:

该图显示了消息离开 MQInput 节点后的逻辑消息树。树的根名称是 Root,并且它有三个子代。它们依次为:Properties、MQMD 和 MIME。

如果需要一个 HTTPRequestHeader,则第一个 Compute 节点(Compute1)用于设置它。如果提供 Web service 的中间应用程序需要 MIME 消息,也可以使用 Compute1 创建新的 MIME 树或修改现有的 MIME 树。

当 HTTPRequest 节点创建请求消息时,它从消息树中除去 MQMD 头。如果您需要保存来自 MQMD(如 MsgId)的信息,以便在发送至 MQ 客户机的应答消息中使用,可以用以下方式保存:
  • Compute1 可以将必需的字段保存在环境树中,以便第二个 Compute 节点 Compute2 可以重新创建 MQMD。
  • Compute1 将必需的字段保存到 OutputLocalEnvironment 树中,以便 Compute2 可以重新创建 MQMD。要执行该操作,必须配置 Compute1 才能传播消息和 LocalEnvironment。
  • 配置 HTTPRequest 节点,不将输入消息替换为 HTTP 响应。而是指定应该将响应作为 OutputRoot.MIME 附加。此后,原始输入树和 MQMD 依然可用,但 Compute2 需要更改该树才能将消息传递到 MQOutput 节点上。例如,Compute2 可能需要除去树的某些部分,例如 HTTPRequestHeader 和 HTTPResponseHeader。要执行该操作,只需复制您要保留的那部分树。以下 ESQL 显示了如何执行该操作的示例:
    SET OutputRoot.MQMD = InputRoot.MQMD;
    SET OutputRoot.MIME = InputRoot.MIME;

HTTPRequest 节点属性控制输出树的内容。

以下两张图显示了在 HTTPRequest 节点中进行 Web service 调用前后的消息树:

该图显示了从 HTTPRequest 节点发送 Web service 请求时的逻辑消息树。树的根名称是 Root,并且它有三个子代。它们依次为:Properties、HTTPRequestHeader 和 MIME。

该图显示了消息从 Web service 请求返回到 HTTPRequest 节点时的逻辑消息树。树的根名称是 Root,并且它有四个子代。它们依次为:Properties、HTTPRequestHeader、HTTPResponseHeader 和 MIME。

Compute2 用于在需要时创建或复原 MQMD,整理树以除去不适当的头,如 HTTPResponseHeader。

相关概念
在 MIME 域中处理消息
MIME 树详细信息
MIME 消息
相关任务
正在开发 ESQL
开发 Java
相关参考
使用 HTTP 作为传输机制创建 Web service
使用 WebSphere MQ 作为传输机制创建 Web service
将支持 WebSphere MQ 的应用程序作为 Web service 进行访问
HTTPReply 节点
HTTPRequest 节点
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac30050_