繁体   English   中英

消息标头是 Spring 带有子流的集成流

[英]Message Headers is Spring Integration flow with subflows

下面是主要的 Spring 集成流程,它通过 HTTP 接收请求,使用多个子流程处理它,然后回复消费者。 问题是当流进入第一个子流时,它几乎丢失了所有的头,包括回复通道。

我想知道请求的标头应该达到什么程度? 到流的末尾(RESPONSE_CHANNEL)? 以及进入子流后如何避免丢包头?

@Bean
public IntegrationFlow exampleFlow() {
  return IntegrationFlows.from(
      Http.inboundGateway("/conversions/lower")
          .requestMapping(r -> r.methods(HttpMethod.POST)
          .mappedRequestHeaders("*") 
          .requestPayloadType(Foo.class)
          .replyChannel(RESPONSE_CHANNEL)
          .mappedResponseHeaders("*")
        )
      .transform(this:transforFoo)
      .channel(CHANNEL1)
      .handle(fooFlowConfiguration.flowHandler())
//several handlers in another subflow 
      .channel(RESPONSE_CHANNEL)
      .get();
}

我试图在流程结束之前丰富标头,但它没有帮助并尝试添加.mappedResponseHeaders(“*”)

我想你只是移动到.channel(CHANNEL1).

这部分不起作用:

handle(fooFlowConfiguration.flowHandler())
//several handlers in another subflow 
      .channel(RESPONSE_CHANNEL)

我认为这一个.replyChannel(RESPONSE_CHANNEL)用于出站网关。

据我所知,http 网关同步工作,只返回最后一个流量值。 在你的情况下,它是 CHANNEL1 最后一步

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM