Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring与JMS配置的集成_Java_Spring_Jms_Spring Integration - Fatal编程技术网

Java Spring与JMS配置的集成

Java Spring与JMS配置的集成,java,spring,jms,spring-integration,Java,Spring,Jms,Spring Integration,我正在尝试使用JMS运行基本的Spring集成配置 问题是,我似乎正在建立连接(根据日志),但我没有收到任何关于我主题的消息 这是我的配置: <!-- Channels --> <jms:channel id="inputChannel" queue-name="test.queue" connection-factory="connectionFactory"/> <!-- Consumers --> <jms:inbound-channel

我正在尝试使用JMS运行基本的Spring集成配置

问题是,我似乎正在建立连接(根据日志),但我没有收到任何关于我主题的消息

这是我的配置:

<!-- 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"/>

我在根记录器上启用了调试级别,它表示
jmsIn
已成功启动,并且已连接到ActiveMQ服务器,但我没有收到任何消息,无论是使用
服务激活器
还是
入站通道适配器

我还可以看到生产者正在通过ActiveMQ web界面发送消息

那么,是否有人看到配置有任何错误,或者知道我可以进一步调试它的方法


谢谢,

将requestQueue的bean定义从
ActiveMQQueue
更改为
ActiveMQTopic
应该可以解决这个问题

<bean id="requestQueue" class="org.apache.activemq.command.ActiveMQTopic">
    <constructor-arg name="name" value="test.topic"/>
</bean>


Question@Simeon:您提到“test.topic”是一个主题,但requestQueue被定义为一个队列-它不是ActiveMQTopic的原因是什么?请尝试改用消息驱动的通道适配器(通常效率更高)设置跟踪级别日志。@BijuKunjummen我刚找到它,你是对的,这就是问题所在,我将实现更改为主题,现在一切正常。请添加一个答案,以便我可以接受:)@GaryRussell如何为应在收到消息时调用的消息驱动通道适配器定义侦听器或服务?为避免进一步混淆,我还建议将bean重命名为“requestTopic”;)@完成了。谢谢你的提醒:)