【问题标题】:Message does not contain valid HTTP context information, Need return context info消息不包含有效的 HTTP 上下文信息,需要返回上下文信息
【发布时间】:2017-10-14 20:33:36
【问题描述】:

我正在使用 IBM 集成工具包

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

然后它通过 MQ Input 将消息抛出到我的应用程序中的响应流

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

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

【问题讨论】:

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


    【解决方案1】:

    问题是您的 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。

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2014-09-20
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2013-05-09
    相关资源
    最近更新 更多