【问题标题】:Amazon MQ Consumer unable to fetch dataAmazon MQ 消费者无法获取数据
【发布时间】:2019-05-01 09:07:06
【问题描述】:

我为Amazon MQ 创建了一个简单的消费者,但看起来我错过了一些东西,因为每当收到消息时它应该调用我的recevieMessage 方法,但它不起作用。
但是我用 apache active MQ 尝试了这个,它工作得很好。

PS:我也尝试过实现MessageListener 类覆盖onMessage() 方法但不起作用。 我在receiveMessage 方法中尝试了不同的参数,例如ObjectMessageByteMessage....

public class Receiver {
    @JmsListener(destination = "Queue_Name")
    public void receiveMessage(final  Message consumerMessage) throws JMSException {
    --some logic on data 
    }
}

我的配置:

 @Configuration
    @EnableJms//enable jms
    public class ReceiverConfig {
    @Bean//created a ActiveMQ Connection Factory 
      public ActiveMQConnectionFactory receiverActiveMQConnectionFactory() {
        ActiveMQConnectionFactory activeMQConnectionFactory =
            new ActiveMQConnectionFactory();
        activeMQConnectionFactory.setBrokerURL(brokerUrl);
        activeMQConnectionFactory.setUserName(userName);
        activeMQConnectionFactory.setPassword(passWord);
        return activeMQConnectionFactory;
      }

      @Bean// Uses default Jms Listener Container Factory
      public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
        DefaultJmsListenerContainerFactory factory =
            new DefaultJmsListenerContainerFactory();
        factory
            .setConnectionFactory(receiverActiveMQConnectionFactory());

        return factory;
      }

      @Bean
      public Receiver receiver() {
        return new Receiver();
      }
}

每次我启动应用程序时都会遇到这个问题: WARN 12740 --- [206:61616@63304] o.a.activemq.ActiveMQSessionExecutor : Received a message on a connection which is not yet started. Have you forgotten to call Connection.start()? Connection: ActiveMQConnection

【问题讨论】:

    标签: spring-boot jms activemq spring-jms amazon-mq


    【解决方案1】:

    我忘记将我的用户定义的 jms lisner 连接工厂名称提到 @jmsListner 注释。

    @JmsListener(destination = "Queue-name",containerFactory ="jmsListenerContainerFactory" )
        public void receiveMessage(@Payload final  Message consumerMessage) throws JMSException {
            LOGGER.info("Into receiveMessage Method");
    }
    

    但我仍然无法找到其他任何 activeMQ 的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2016-10-25
      • 1970-01-01
      相关资源
      最近更新 更多