0

一个模块每 N 秒向消息代理发送消息。另一个模块从代理接收消息。消息构建在服务激活器的方法 sendMessage 中。计划是使用入站通道适配器(如答案中所示),但由于某些原因,此解决方案不起作用,我一直收到“在轮询期间未收到任何消息,返回 'false'”。这个配置有什么问题?

<int-jms:inbound-channel-adapter id="keepAlivePoller" channel="keepAliveChannel" destination="keepAlive" connection-factory="connectionFactory"> 
        <si:poller id="sendPoller"  fixed-rate="${keepalive.sendinterval}" max-messages-per-poll="1"></si:poller>
    </int-jms:inbound-channel-adapter>

    <si:service-activator input-channel="keepAliveChannel" method="sendMessage" ref="keepAliveSender"/>
    <bean class="com.foo.KeepAliveSender"/>

    <si:channel id="keepAliveChannel"/>
4

1 回答 1

0

只有在“keepAlive”队列中有消息时才会发送消息。

您可以简单地使用...

<int:inbound-channel-adapter id="keepAlivePoller" channel="keepAliveChannel"
        expression="'foo'"> 
    <si:poller id="sendPoller"  fixed-rate="${keepalive.sendinterval}" />
</int:inbound-channel-adapter>

...并且根本不使用 JMS。

于 2013-10-07T15:15:34.707 回答