解决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,线程池开启,后面有空格,且没有引入线程池包

       <dependency>            <groupId>org.apache.activemq</groupId>            <artifactId>activemq-pool</artifactId>        </dependency>

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

<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踩过坑

启动时候就关闭了

配置如下

server: port: 8762#    context-path: /memebereureka: 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同级了

解决后配置如下

server: port: 8762#    context-path: /memebereureka: 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缩进要四个字节。一个字节不容易分辨

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

但我们好多人没想过,勇敢的冷静的理智的去接受失败,

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

相关文章:

你感兴趣的文章:

标签云: