Spring中的会话存储集成并处理多个http出站网关

时间:2014-10-14 19:01:03

标签: java spring http request spring-integration

集成图的示例如下

  1. HTTP入站网关以及GET参数,例如" dataValue"
  2. 拨打两个单独的http出站网关
  3. 处理两个出站网关的响应
  4. 显示两个出站网关的结果以及传递的GET参数的响应
  5. 我们有两个要求,一个是我们需要向两个http出站网关发送两个单独的请求,这两个http出站网关提供两种不同类型的响应(一个具有基础数据,一个具有价格数据)。我们如何将这两个结果汇总进行处理。是否需要使用特殊类型的聚合器,模式等

    另一个要求是,因为我们有一个调用上述两个http网关的http入站网关,处理这两个请求并产生一个json输出。在对http入站网关的请求中,可能存在一个名为" dataValue"的传递的GET参数。其中包含值" 17"。在处理完两个http出站网关响应后,请求完成后," dataValue"作为GET参数传递的参数和值必须附加到响应。存储和识别" dataValue"的最佳方法是什么?每个特定请求的参数并将其附加到响应。我们是否可以通过另一个通道将其传递给最终响应的聚合器,或者是否有办法将其存储在会话存储中以用于每个请求和此类技术。

    此致 弥兰陀

1 个答案:

答案 0 :(得分:0)

很抱歉迟到的回复(不知道我是怎么错过你的问题的),无论如何我希望答案会有所帮助。

关于dataValue GET请求参数:

您可以将其填充到邮件标题中:

<int-http:inbound-gateway path="/myPath?dataValue={dataValue}"
                     request-channel="processChannel">
    <int-http:header name="dataValue" expression="#requestParams.dataValue"/>
</int-http:inbound-gateway>

重新。几个<int-http:outbound-gateway>

您可以将<publish-subscribe-channel>apply-sequence="true"一起使用 - 最后<aggregator>group正确回复单reply

为了获得更好的效果,您可以向executor添加<publish-subscribe-channel>,并且您的<int-http:outbound-gateway>将会并行调用。