2017-10-14 141 views
1

我使用IBM的集成工具包消息不包含有效的HTTP上下文信息,需要返回的上下文信息

我有两个流向的应用;请求流具有使用http请求节点的json请求消息,然后通过MQ输入,计算节点和MQ回复将消息抛出到另一个流(在表示存根的另一应用程序中)。

它然后投消息通过MQ输入我的应用程序的响应流

我需要输出以JSON形式的消息通过HTTP应答节点,但在流动它运行一个异常“消息不包含有效的HTTP上下文信息,需要返回的上下文信息”

如果任何人有此错误的线索,以及如何解决它提前 感谢

回答

0

的问题是,你的HTTP响应流不知道哪个要求它有回复。

如果您确实需要您的请求和响应作为不同的流实施,则必须在某处存储传入HTTP或SOAP请求的标识符,例如作为某个专用队列中的消息。

在您的申请流程,你可以找到的请求标识符在

InputLocalEnvironment.Destination.HTTP.RequestIdentifier 

InputLocalEnvironment.Destination.SOAP.RequestIdentifier 

根据您的输入节点的类型。

然后,您的响应流程应读取请求流写入的消息以查找RequestIdentifier的值。 这个值应该被设置成响应消息组件的LocalEnvironment中:

OutputLocalEnvironment.Destination.HTTP.Reply.ReplyIdentifier 

OutputLocalEnvironment.Destination.SOAP.Reply.ReplyIdentifier 

这里是IBM文档:https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ac20450_.htm#ac20450___le

当HTTPInput节点接收输入请求消息它将本地环境字段Destination.HTTP.RequestIdentifier设置为唯一值,用于标识发送请求的Web服务客户端。您可以引用此值,并且可以将其保存到其他位置(如果适用)。

例如,如果你设计一对与 现有的WebSphere MQ应用程序进行交互的消息流的(如在经纪人描述调用 现有的Web服务),可以节省在 请求流的标识符值,并恢复它在回复流程中,以确保 正确的客户端收到回复。如果使用这种技术,则必须 不会更改数据,并且必须将数据保留为BLOB。

HTTPReply节点从本地 环境树中提取标识符值并设置回复,以便将其发送到 特定客户端。但是,如果您在流程 中使用的HTTPReply节点没有HTTPInput节点,并且此字段已被删除 或设置不正确,则会发出消息BIP3143S。

+0

Thaanks非常 –