SpringBoot集成RocketMQ報錯:Bad annotation definition in @ExtRocketMQTemplateConfiguration...


1.問題緣由

使用官方提供的rocketmq-spring-boot-starter提供的例子寫ExtRocketMQTemplate時候,修改了配置文件中的nameServer配置,改成了和rocketmq.name-server一樣的值:

## 配置文件
rocketmq:
  name-server: 192.168.2.182:9876;192.168.2.183:9876
...
demo:
  rocketmq:
    ...
    extNameServer: 192.168.2.182:9876;192.168.2.183:9876

## Java Code
@ExtRocketMQTemplateConfiguration(nameServer = "${demo.rocketmq.extNameServer}")
public class ExtRocketMQTemplate extends RocketMQTemplate {
}

2.問題描述

貼上了堆棧信息:

org.springframework.beans.factory.support.BeanDefinitionValidationException: Bad annotation definition in @ExtRocketMQTemplateConfiguration, nameServer property is same with global property, please use the default RocketMQTemplate!
	at org.apache.rocketmq.spring.autoconfigure.ExtProducerResetConfiguration.validate(ExtProducerResetConfiguration.java:153) ~[rocketmq-spring-boot-2.0.3.jar:2.0.3]
	at org.apache.rocketmq.spring.autoconfigure.ExtProducerResetConfiguration.registerTemplate(ExtProducerResetConfiguration.java:88) ~[rocketmq-spring-boot-2.0.3.jar:2.0.3]
	at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:1.8.0_144]
	at org.apache.rocketmq.spring.autoconfigure.ExtProducerResetConfiguration.afterSingletonsInstantiated(ExtProducerResetConfiguration.java:75) ~[rocketmq-spring-boot-2.0.3.jar:2.0.3]
...

3.問題解決

根據報錯提示,nameServer不能設置為和上面rocketmq.name-server一樣的值,改為不一樣即可解此問題:

rocketmq:
  name-server: 192.168.2.182:9876;192.168.2.183:9876
...
# properties used in the application
demo:
  rocketmq:
    ...
    extNameServer: 192.168.2.182:9876


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM