【发布时间】:2018-07-08 09:35:18
【问题描述】:
当我使用 Spring AMQP 部署 2 个包时,我在以下代码中收到 JMX 错误:
@Bean
public CachingConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory(HOST);
connectionFactory.setBeanName("Test_123");
return connectionFactory;
}
我错了Caused by: javax.management.InstanceAlreadyExistsException: org.springframework.amqp.rabbit.connection:name=connectionFactory,type=CachingConnectionFactory
完整的错误堆栈: https://pastebin.com/CdU3epMz
如何为 connectionFactory 设置唯一名称?
编辑:
我也试过把 application.properties 放在 src/main/java/resources 这个配置下:
spring.jmx.enabled=false
spring.datasource.jmx-enabled=false
spring.jmx.default-domain=ssds # JMX domain name.
spring.jmx.server=apiServer # MBeanServer bean name.
management.metrics.export.jmx.domain=metccriddcs # Metrics JMX domain name.
management.metrics.export.jmx.enabled=false # Whether exporting of metrics to JMX is enabled.
management.endpoints.jmx.exposure.exclude=*
但我得到了同样的错误。
【问题讨论】:
-
我认为这里已经处理了一个类似的问题:link
-
是的,这解决了我的问题。有没有办法使用@Bean 配置来获得相同的结果?
-
我能想到的方法有两种。第一个是完全禁用 jmx(如果你不需要它)。第二个是为两者设置属性
spring.application.name,并希望您公开的jmx-bean使用应用程序名称作为前缀。 -
我已经尝试了一些配置。查看更新后的帖子。
标签: java spring spring-amqp spring-jmx