我正在尝试使用JMS运行基本的Spring Integration配置。
问题是我似乎正在建立连接(根据日志),但我没有收到关于我主题的任何消息。
这是我的配置:
<!-- Channels -->
<jms:channel id="inputChannel" queue-name="test.queue" connection-factory="connectionFactory"/>
<!-- Consumers -->
<jms:inbound-channel-adapter id="jmsIn" destination="requestQueue" channel="inputChannel" extract-payload="true" connection-factory="connectionFactory">
<integration:poller time-unit="SECONDS" fixed-rate="5"/>
</jms:inbound-channel-adapter>
<integration:service-activator id="testActivator" input-channel="inputChannel" ref="testServiceActivator" auto-startup="true" method="handle">
</integration:service-activator>
<!-- Bean definitions -->
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://127.0.0.1:61616"/>
</bean>
</property>
<property name="sessionCacheSize" value="10"/>
<property name="cacheProducers" value="false"/>
</bean>
<bean id="requestQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="test.topic"/>
</bean>
<bean id="testServiceActivator" class="com.paddypower.financials.integration.PriceDistributionServiceActivator"/>
我在根记录器上启用了DEBUG级别,它表示jmsIn
已成功启动并且已连接到ActiveMQ服务器,但我没有收到任何消息,{{1} }或service-activator
。
我还可以看到制作人正在通过ActiveMQ网络界面发送消息。
那么任何人都可以看到配置有什么问题,或者知道我可以进一步调试的方法吗?
谢谢,
答案 0 :(得分:2)
将requestQueue的bean定义从ActiveMQQueue
更改为ActiveMQTopic
应修复它。
<bean id="requestQueue" class="org.apache.activemq.command.ActiveMQTopic">
<constructor-arg name="name" value="test.topic"/>
</bean>