SpringBoot项目集成消息中间件以后@JmsListener注解不能生效的问题

一、背景

今天有项目组找过来说集成我们提供的SDK以后,原本项目中activeMQ可以正常使用的@JmsListener注解失效了,消费者不能正常的消费消息,需要使用原始编码的方式才能获取消息。

在进行代码调试的时候发现,JmsListenerAnnotationBeanPostProcessor 类中,获取到的JMS相关对象是sleuth相关的,经过排查发现,确实应用中引入了sleuth相关依赖,产生了冲突,引入sleuth依赖会默认启用JMS跟踪。

二、解决方法

因为项目打算使用skywalking进行链路追踪,所以关闭sleuth的JMS跟踪即可。

server:
  port: 8082
spring:
  activemq:
    broker-url: tcp://127.0.0.1:61616
    user: admin
    password: admin
    in-memory: false
    pool:
      enabled: false
    # 关闭sleuth JMS追踪
  sleuth:
    messaging:
      jms:
        remote-service-name: false

你可能感兴趣的:(springboot,java,SpringBoot,JMSListener,activeMq,注解失效)