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

在ActiveMQ Artemis和MQTT中使用Spring Boot时出错

闻人越
2023-03-14

我将Spring Boot与嵌入的ActiveMQ Artemis一起使用,并添加Artemis-MQTT-Protocolmaven依赖项。它显示以下错误:

AnnotationConfigEmbeddedWebApplicationContext:559] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddedActiveMQ' defined in class path resource [com/els/galaxy/gateway/ArtemisConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolManagerFactory.stripPasswordParameters(Ljava/util/Map;)V 
[LocalContainerEntityManagerFactoryBean:597] - Closing JPA EntityManagerFactory for persistence unit 'readPersistenceUnit' =
[LocalContainerEntityManagerFactoryBean:597] - Closing JPA EntityManagerFactory for persistence unit 'writePersistentUnit' 
[session:167] - node0 Stopped scavenging 
[ContextHandler:1045] - Stopped o.s.b.c.e.j.JettyEmbeddedWebAppContext@7bebe5de{application,/galaxy-gateway,[file:///C:/Users/basireddym/AppData/Local/Temp/jetty-docbase.7636853341168462882.86/],UNAVAILABLE} 
[AutoConfigurationReportLoggingInitializer:102] -artemis

共有1个答案

慎俊雄
2023-03-14

在我看来,您使用的artemis-MQTT-protocol版本比代理的版本新。因此,MQTT协议处理程序中有代码试图调用代理中不存在的方法(因为它是旧版本)。所讨论的方法(即org.apache.activemq.Artemis.core.protocol.mqtt.mqtprotocolManagerFactory.StripPasswordParameters(ljava/util/map;)v)是在Artemis 2.8.0中添加的,因此如果您使用的代理至少不是那么新,那么这将失败。

请确保您使用的artemis-MQTT-protocol的版本与Spring Boot时代理的版本相同。

 类似资料:
  • 目前,我正在尝试将JWT身份验证集成到现有的Spring Boot Webflux项目中。作为模板,我使用了这篇媒体文章:https://medium.com/@ard333/authentication-and-authorization-using-jwt-on-spring-webflux-29b81f813e78。如果我将注释@EnableWebFluxSecurity放在我的WebSec

  • 我们的软件使用api(filenet p8),需要配置log4j。我们使用logBack和Spring Boot。我注意到,要在Spring Boot中使用log4j,我们必须排除logBack。这是不可能的。有没有办法在Spring Boot中并行运行log4j和logBack?谢啦

  • 我想把@AutoWired注释变成一个“方面”。我想在我的方面中注入一个存储库,但是当我试图调用autowired类的方法时,出现了NullPointException。 我已经尝试在aspect类上添加,但我出现了同样的错误。 如果我不使用aspect类,而是使用,我可以毫无问题地调用存储库。 一些文档谈到了spring的xml文件配置,但在spring boot,我没有这些文件。 这里是pom

  • 我想把我的项目连接到弹性搜索。我得到以下错误: com.example.demo.elasticsearch.controller中的字段存储库。控制器需要“com.example.demo.elasticsearch.repository”类型的bean。找不到CustomerRepository“。 注入点有以下注释:- 行动: 所以我构建了一些类,如下所示: Controller.java

  • 我是一个编程初学者,我一直在做一个小项目,著名的游戏叫做俄罗斯方块,我遇到了这个小问题,我希望你能帮助我解决这个问题。我导入了:和以便能够使用我的键盘玩游戏,但是当我扩展我创建的类以使用这些键时,它显示了一个错误!! 错误发生在这里,说: 类TAdapter扩展keyAdapter{//第二个发生在此处:keyAdapter不能//解析为类型public void keyPressed(keyEv

  • 看起来在这个话题上有一些问题,但许多问题现在已经过时,或者问的是不同的问题。 例如,我想做 我不想在 我有一个方法签名,它同时接受请求参数和请求主体(它是Kotlin,但我不认为这实际上有什么不同)。 我可以很好地访问RequestParam,但是RequestBody包含的不仅仅是我在body中发送的JSON,它包含了body和请求参数的合并。在上面的示例中,它将为body绑定输出以下内容 有没