Spring集成:每次都不会调用标头值路由器

时间:2014-02-17 10:13:30

标签: spring-integration

我们正在使用header-value-router。配置:

<int:header-value-router input-channel="accountSummeryRequest"
        header-name="word"
        default-output-channel="accountSummeryRequest"
        resolution-required="false">
    <int:mapping value="xx" channel="accountSummeryRequest" />
    <int:mapping value="yy" channel="newRequestChannel" />
</int:header-value-router>

<int:service-activator id="accountServiceActivator" 
        input-channel="accountSummeryRequest"
        output-channel="accountSummeryResponse" 
        ref="serviceGatewayAdapter" 
        method="requestHandler" 
        send-timeout="60000"/>

<int:service-activator id="caRequestActivator" 
        input-channel="newRequestChannel"
        output-channel="accountSummeryResponse" 
        ref="caServiceGatewayAdapter" 
        method="requestHandler" 
        send-timeout="60000"/>

现在,如果我将单词yy给出,则第一次调用header-value-router enter code here并调用精确的服务激活器,在本例中为caRequestActivator。但我再次尝试使用word=yy header-value-router未被调用,请求通过accountServiceActivator。替代请求正常工作。

我不知道这里有什么问题。

1 个答案:

答案 0 :(得分:1)

您的问题围绕round-robin频道及其两位订阅者的accountSummeryRequest调度员:<int:header-value-router>accountServiceActivator

要解决此问题,您应该将input-channel的{​​{1}}更改为某个不同的频道。当然,不要试图改变<service-activator> 相应