Spring Integration将discard消息丢弃给replyChannel

时间:2015-08-20 21:19:51

标签: spring-integration

我有一个嵌套链。我想在内链中添加一个过滤器,以便它可以在特定条件下继续流动或从链中退出。如果我没有设置丢弃频道或将丢弃频道设置为" nullChannel",它会挂起。所以,我想到了路由到由Spring设置的头文件中的replyChannel。使用以下配置,我得到SpelEvaluationException。如何将discard-channel设置为replyChannel?请注意,由于我想多次调用childChannel,所以replyChannel始终不一样。

 <int:chain id="parentChain" input-channel="request">
  ....
   <int:gateway request-channel="childChannel" />
   <int:header-enricher .. </header-enricher>
   <int:gateway request-channel="childChannel" /> 


  ....    
  </int:chain>

  <int:chain input-channel="childChannel">
  ..
  <int-xml:xpath-filter discard-channel="#{headers['replyChannel']}">
     <int-xml:xpath-expression expression="" />
  </int-xml:xpath-filter>
 ..
 </int:chain>

1 个答案:

答案 0 :(得分:0)

不确定你的逻辑是否正确,但你真的不能这样丢弃。

您可以这样做:

<int-xml:xpath-filter discard-channel="discardChannel">
...

<int:header-value-router input-channel="discardChannel" header-name="replyChannel"/>

Filter模式(及其组件)分别用于那些不应该进入主下游的消息。

我认为你应该使用不同的东西,而不是<filter> ......