当前位置: 首页 > 知识库问答 >
问题:

Spring JMS侦听器未连接到ActiveMQ

汪鸿志
2023-03-14
   <!-- 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>
@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的web控制台中发送消息,但是如果没有客户端连接,就没有交付的希望。谢谢你的意见。

更新:我找到一个StackTrace...

[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

共有1个答案

步博涉
2023-03-14

因为我看错了日志,我没有看到明显的。我张贴这是因为这是很多人可能会绊倒。

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

这是Bruce Snider在web的某个地方提到的,作为对同样问题的答复。

 类似资料:
  • MyAlertDialog在尝试将上下文设置为侦听器时抛出ClassCastException。我正在从片段调用MyAlertDailog。 我正在使用在android开发文档中找到的指南。 https://developer.android.com/guide/topics/ui/dialogs#PassingEvents 我的片段 MyAlertDialog 错误报告

  • 我收到以下错误消息 JAVAsql。SQLException:Listener拒绝了连接,出现以下错误:ORA-12505,TNS:Listener当前不知道连接描述符中给出的SID 原因:甲骨文。网纳什。NetException:侦听器拒绝连接,出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的SID 请帮我这个...

  • 问题内容: 我们有一个Java侦听器,它从JBossMQ的队列中读取文本消息。如果必须重新启动JBoss,则侦听器将不会重新连接并重新开始阅读消息。我们只是每2分钟在侦听器的日志文件中收到一条消息,指出该消息无法连接。我们在代码或JBossMQ中没有设置什么吗?我是JMS的新手,因此将非常感谢您的帮助。谢谢。 问题答案: 您应该在客户端代码中实现javax.jms.ExceptionListene

  • 我目前正在使用mail-listener5软件包来断言电子邮件地址收件箱中的电子邮件数量。 我的测试框架是nightwatchjs。 目前,我的命令脚本从电子邮件地址收件箱(标题为getInboxEmails)中获取电子邮件的数量; 我的nightwatchjs测试脚本如下所示; 当我运行这个nightwatchjs脚本时,输出以下内容; 但是,浏览器不会关闭。 我有点期待这一点,因为在我的get

  • 名为“Connection Factory”的bean应为“org.apache.activeMQ.activeMQConnectionFactory”类型,但实际上是“org.springframework.cloud.sleuth.instrument.messaging.lazyConnectionFactory”类型 我的依赖项: > org.springframework.boot.sp

  • 我的代码使用jQuery。我有一个密码输入框,我想要得到输入的密码任何时候。 下面是我的代码: 我确信这是一个正确的代码,因为当我在浏览器的控制台中输入它时,它可以工作,但当我重新加载页面时,它就不工作了 我能做什么?