当前位置: 首页 > 知识库问答 >
问题:

jmxMBeanExitter和带有Spring Cloud Streams的重复kafkaStreamsTopology的问题Horsham/Hoxton

穆乐逸
2023-03-14

当工作从Spring Boot 2.1更新我的应用程序时。X到2.3。X和Spring Cloud Streams(kafka流版本)从2.1.2到3.0.8(Fishtown到Hoxton)我遇到了以下情况:

2020-09-03 14:21:00.059 ERROR [main] org.springframework.boot.SpringApplication -  - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jmxMBeanExporter' defined in class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/jmx/JmxEndpointAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.actuate.endpoint.jmx.JmxEndpointExporter]: Factory method 'jmxMBeanExporter' threw exception; nested exception is java.lang.IllegalStateException: Unable to map duplicate endpoint operations: [MBean call 'kafkaStreamsTopology'] to topologyEndpoint
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:635)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
    at com.myapp.MyAppApplicationKt.main(MyAppApplication.kt:33)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.actuate.endpoint.jmx.JmxEndpointExporter]: Factory method 'jmxMBeanExporter' threw exception; nested exception is java.lang.IllegalStateException: Unable to map duplicate endpoint operations: [MBean call 'kafkaStreamsTopology'] to topologyEndpoint
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)
    ... 20 common frames omitted
Caused by: java.lang.IllegalStateException: Unable to map duplicate endpoint operations: [MBean call 'kafkaStreamsTopology'] to topologyEndpoint
    at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.assertNoDuplicateOperations(EndpointDiscoverer.java:234)
    at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.convertToEndpoint(EndpointDiscoverer.java:201)
    at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.convertToEndpoints(EndpointDiscoverer.java:182)
    at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.discoverEndpoints(EndpointDiscoverer.java:125)
    at org.springframework.boot.actuate.endpoint.annotation.EndpointDiscoverer.getEndpoints(EndpointDiscoverer.java:117)
    at org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration.jmxMBeanExporter(JmxEndpointAutoConfiguration.java:95)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 21 common frames omitted

虽然正在删除组件扫描(…) 我在核心应用程序上消除了上述问题,这导致了“缺少bean!”问题,因为我不再包括来自公共包的bean。

导致此错误的原因是什么?我该如何修复它?

共有1个答案

朱昊乾
2023-03-14

在没有找到搜索jmxMBeanExitter、破碎的@ComponentScan(...)和/或kafkaStreamsTopology的运气后。我专注于库更改并开始阅读Spring Cloud Stream Github问题。

我的问题是根据一位图书馆作者的评论来解决的

...我刚刚在IntelliJ上的另一个应用程序(使用Hoxton.BUILD-SNAPSHOT)中遇到了这个问题,并通过在IDE的运行配置文件中禁用JMX代理来解决这个问题。请尝试将其作为解决方案。我现在结束这个问题。如果需要,请随时重新打开。

确实,为IntelliJ构建运行禁用启用JMX代理解决了该问题。

 类似资料:
  • 文件将其分为3种情况。“备份计划”、“连续计划”和“实时计划”。 http://docs.jboss.org/optaplanner/release/latest/optaplanner-docs/html_single/index.html#重复规划 如果我没有遗漏什么,那么所有optaplanner-examples(例如Nurse roastering)都使用“ProblemFactChan

  • 我正在一个项目,有纯PHP作为后端和MySQL作为数据库。目前,我正在使用ajax来发布和接收来自数据库的数据。但我想使用Websockets的接收部分,使其实时。根据我的搜索和发现,人们引用Node.js、Redis PubSub等来实现它。然而,我没有找到一个关于这个主题的好教程。另外,据我所知,当我在后面运行复杂的PHP算法和MySQL查询时,Nods.js和PHP并不能很好地结合在一起。所

  • Jboss 7.2.0、ejb3、oracle项目中的所有实体都定义了像@sequenceGenerator这样的序列生成器(Name=“xx”,sequenceName=“yy”allocationsize=“10”) 对于一对多关系,有时我会遇到重复主键的问题。不确定这里有什么问题,但是在事务回滚之后,序列被重置,并且我一直有约束冲突错误,我已经将allocationSize更改为1,这似乎是

  • 我想在提交时显示一个弹出窗口,如果值小于max属性。我可以使用如下的HTML5属性实现这一点:,但问题是,当max值是像这样的浮点数时,它会显示另一个弹出窗口,说明该值必须小于21。 我已经搜索过了,我可以用Javascript解决这个问题,但我希望使用max属性,即使值是浮点数。 我希望表单能够提交即使值是21或21.1,除非它是21.2或更多。

  • 我是AWS DataPipeline的新手。我创建了一个成功的datapipeline来将所有内容从RDS拉到S3 bucket。一切都管用。我在S3 bucket中看到了我的。csv文件。但我在表中存储西班牙语名称,在csv中,我看到的是“García”而不是“García”

  • 我正在使用JavaFx 8库。 我的任务很简单:我想检查圆形是否与周围有粗笔划的路径冲突。问题是函数Path.intersect()和Shape.intersect()都忽略了路径/线周围的笔画。 我的路径由许多LineTo对象组成。格式如下: 如何实现成功的碰撞检测?