首页 > 解决方案 > Spring Boot 中的 MessageListener 实现不起作用

问题描述

我正在尝试在 Spring-Boot 应用程序中实现一个实现 MessageListener 的 JMS Consumer,但它似乎不起作用。

我不想使用@JmsListener,因为我需要访问我的自定义任务执行器才能在 weblogic 上以多线程方式运行消费者。

为达到这个。

我实现了如下消费者:

public class MyJmsListener implements MessageListener {
  @Override
  public void onMessage(Message message) {
      if (message instanceof TextMessage) {
          try {
              String text = ((TextMessage) message).getText();
              System.out.println("received: " + text);
          } catch (JMSException e) {
              e.printStackTrace();
          }
      }
  }
}

应用配置

@Bean
  public MessageListenerContainer listenerContainer() {
      DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
      container.setConnectionFactory(connectionFactory());
      container.setDestinationName(QUEUE_NAME);
      container.setMessageListener(new MyJmsListener());
      return container;
  }

但这在 Spring-Boot 中不起作用。有人可以告诉这里有什么问题吗?

标签: javaspringspring-bootqueuejms

解决方案


推荐阅读