消息不包含有效的HTTP上下文信息,需要返回上下文信息

时间:2017-10-14 20:33:36

标签: json web-services http http-headers websphere

我正在使用IBM集成工具包

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

然后通过MQ Input

将消息抛出到我的应用程序中的响应流

我需要通过http回复节点以json形式输出消息,但是在流程中它运行异常"消息不包含有效的HTTP上下文信息,需要返回上下文信息"

如果有人知道这个错误以及如何解决它 提前致谢

1 个答案:

答案 0 :(得分: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 doc: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应用程序(如Broker调用中所述)   现有的Web服务),可以保存标识符值   请求流,并在回复流程中恢复它,以确保   正确的客户收到回复。如果你使用这种技术,你必须   不更改数据,您必须将数据保留为BLOB。

     

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