好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

解决springboot+activemq启动报注解错误的问题

springboot+activemq启动报注解错误

Description:
Field jmsMessagingTemplate in com.haozz.demo.mq.PromoteActProducer required a bean of type 'org.springframework.jms.core.JmsMessagingTemplate' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)

The following candidates were found but could not be injected:
- Bean method 'jmsMessagingTemplate' in 'JmsAutoConfiguration.MessagingTemplateConfiguration' not loaded because Ancestor org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration did not match

Action:
Consider revisiting the entries above or defining a bean of type 'org.springframework.jms.core.JmsMessagingTemplate' in your configuration.

原因总结有以下3点原因:

1.spring.activemq.pool.enabled=true,线程池开启,后面有空格,且没有引入线程池包

?

1

2

3

4

< dependency >

      < groupId >org.apache.activemq</ groupId >

      < artifactId >activemq-pool</ artifactId >

  </ dependency >

2.springboot版本问题不支持,建议用2.0版本启动

?

1

2

3

4

5

6

< parent >

         < groupId >org.springframework.boot</ groupId >

         < artifactId >spring-boot-starter-parent</ artifactId >

         < version >2.0.1.RELEASE</ version >

         < relativePath /> <!-- lookup parent from repository -->

     </ parent >

猜想:估计是因为2.1.0+版本有自己的线程池管理,导致冲突

3.spring.activemq.pool.enabled=false,关闭线程池

springboot整合activemq踩过坑

启动时候就关闭了

配置如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

server:

  port: 8762

#    context-path: /memeber

eureka:

  client:

    service-url:

      defaultZone: http: //localhost:8761/eureka/

spring:

    application:

        name: member

    redis:

        host: 127.0 . 0.1

        password: 123456

        port: 6379

        pool:

            max-idle: 100

            min-idle: 1

            max-active: 1000

            max-wait: - 1

    datasource:

        name: test1

        url: jdbc:mysql: //127.0.0.1:3306/dandan-member

        username: root

        password: 123456

        type: com.alibaba.druid.pool.DruidDataSource

        driver- class -name: com.mysql.jdbc.Driver

        filters: stat

        maxActive: 20

        initialSize: 1

        maxWait: 60000

        minIdle: 1

        timeBetweenEvictionRunsMillis: 60000

        minEvictableIdleTimeMillis: 300000

        validationQuery: select 'x'

        testWhileIdle: true

        testOnBorrow: false

        testOnReturn: false

        poolPreparedStatements: true

        maxOpenPreparedStatements: 20

     ##activemq连接信息

activemq:

    broker-url: tcp: //localhost:61616

    in-memory: true

    pool:

      enabled: false

##队列

messages:

     queue: messages_queue

解决如下

原本activemq 没有在spring.后面直接在前面了,与spring同级了

解决后配置如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

server:

  port: 8762

#    context-path: /memeber

eureka:

  client:

    service-url:

      defaultZone: http: //localhost:8761/eureka/

spring:

    application:

        name: member

    redis:

        host: 127.0 . 0.1

        password: 123456

        port: 6379

        pool:

            max-idle: 100

            min-idle: 1

            max-active: 1000

            max-wait: - 1

    datasource:

        name: test1

        url: jdbc:mysql: //127.0.0.1:3306/dandan-member

        username: root

        password: 123456

        type: com.alibaba.druid.pool.DruidDataSource

        driver- class -name: com.mysql.jdbc.Driver

        filters: stat

        maxActive: 20

        initialSize: 1

        maxWait: 60000

        minIdle: 1

        timeBetweenEvictionRunsMillis: 60000

        minEvictableIdleTimeMillis: 300000

        validationQuery: select 'x'

        testWhileIdle: true

        testOnBorrow: false

        testOnReturn: false

        poolPreparedStatements: true

        maxOpenPreparedStatements: 20

     ##activemq连接信息

    activemq:

        broker-url: tcp: //localhost:61616

        in-memory: true

        pool:

           enabled: false

##队列

messages:

     queue: messages_queue

建议。yml缩进要四个字节。一个字节不容易分辨

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/a544019293/article/details/88179954

查看更多关于解决springboot+activemq启动报注解错误的问题的详细内容...

  阅读:18次