org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration 中的构造函数需要一个 bean,但找到了 3 个

Constructor in org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration required a single bean, but 3 were found

使用 this link

配置演示后,运行 演示站点(或管理员)出现问题

我遇到了这个错误

*************************** APPLICATION FAILED TO START


Description:

Constructor in org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration required a single bean, but 3 were found: - exporter: defined in class path resource [bl-common-applicationContext-mbeans.xml] - blAutoDDLStatusExporter: defined in class path resource [bl-common-applicationContext-mbeans.xml] - hibernateExporter: defined in class path resource [bl-common-applicationContext-mbeans.xml]

Action:

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

我该如何解决这个问题?

请注意,我使用的是最新的 Broadleaf Commerce 版本 (5.2)

尝试将@Qualifier 注释与您尝试加载的 bean id 一起使用,

@Qualifier("{bean_id_here}")

注释

  1. 出口商
  2. blAutoDDLStatusExporter
  3. 休眠导出器

在你的 xml 配置文件中使用 primary="true" 让 Spring 知道什么时候 bean 应该是 Spring Admin JMX 配置的默认值或禁用 [​​=25= ] 通过在 application.properties.

中设置 spring.application.admin=false 来管理 JMX 自动配置

我假设您运行正在使用最新版本的 IntelliJ 2017.2 构建项目。解决方法是在引导项目的 运行 配置中禁用 "Enable JMX Agent"。

我在 https://github.com/BroadleafCommerce/Issues/issues/1 上为此提出了一个问题,这应该会在下一版本的 Broadleaf 中得到解决。

感谢您的回答,我通过从 IntelliJ 中删除配置属性中的 JMX 属性 设法将其设置为 运行。

  1. 单击“编辑配置”(来自 运行 菜单)
  2. 停用“启用 JMX 代理”(对话框右下角。
  3. 申请并运行

希望对您有所帮助。