首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring侦听器不连接到ActiveMQ

Spring侦听器不连接到ActiveMQ
EN

Stack Overflow用户
提问于 2014-12-05 12:46:59
回答 1查看 6.5K关注 0票数 0

我想使用Spring JMSListener基础设施。因此,我设置了一个ActiveMQ实例,并尝试执行一个简单的测试。这里是我的spring配置:

代码语言:javascript
复制
   <!-- ActiveMQ Configuration -->
    <jms:annotation-driven/>

    <!-- JMS ConnectionFactory to use, configuring the embedded broker using XML -->
    <bean id="jmsConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://xxxx.xxxx.net:8161" />
    </bean>


    <bean id="jmsListenerContainerFactory"
          class="org.springframework.jms.config.DefaultJmsListenerContainerFactory">
        <property name="connectionFactory" ref="jmsConnectionFactory"/>
        <property name="concurrency" value="3-10"/>
    </bean>

当然,我有这样一门简单的课:

代码语言:javascript
复制
@Component
public class MessageListenerExample {

    @JmsListener(destination = "TestQueue")
    public void doSomething(String message) {
        System.out.println("OnMessage Received  :" + message);

    }
}

现在当我启动基于spring的应用程序时。我在调试器中看到,我的侦听器方法得到了注册,但不知怎么的,Spring没有连接到ActiveMQ队列,我可以通过查看activeMQ web控制台轻松地看到它。此外,我没有看到任何来自spring的日志记录输出,而JMS是这样做的。

我错过了什么吗?从这里走最好的路是什么?当然,我也测试过从ActiveMQ的网络控制台发送消息,但是w/o是一个客户端连接,没有希望交付。谢谢你的意见。

更新:我找到了一个堆栈..。

代码语言:javascript
复制
[WARN 14:02:58] DefaultMessageListenerContainer.handleListenerSetupFailure(860) | Setup of JMS message listener invoker failed for destination 'TestQueue' - trying to recover. Cause: The JMS connection has failed: Unknown data type: 47
org.apache.activemq.ConnectionFailedException: The JMS connection has failed: Unknown data type: 47
    at org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(ActiveMQConnection.java:1480)
    at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:324)
    at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:192)
    at org.springframework.jms.listener.DefaultMessageListenerContainer.access$1400(DefaultMessageListenerContainer.java:122)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.initResourcesIfNecessary(DefaultMessageListenerContainer.java:1162)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1141)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1134)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1031)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Unknown data type: 47
    at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:365)
    at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:285)
    at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)
    at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)
    at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
    ... 1 more
EN

回答 1

Stack Overflow用户

发布于 2014-12-05 13:19:30

因为我看错了日志,我没有看到明显的。我之所以发布这篇文章,是因为这是许多人可能会遇到的事情。

我在spring配置中定义了错误的端口。我错误地使用了web控制台端口,但我当然希望使用TCP传输,它位于端口61616上。

布鲁斯·斯奈德( Bruce )在网上的某个地方提到了这一点,以回答同样的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27316225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档