首页 > 解决方案 > Spring Boot 应用程序从 RabbitMQ 使用时出现异常

问题描述

我的springboot应用程序中有以下代码

@Bean
    public IntegrationFlow amqpInbound(ConnectionFactory connectionFactory) {
        return IntegrationFlows.from(Amqp.inboundAdapter(connectionFactory, "aName"))
                .handle(m -> System.out.println(m.getPayload()))
                .get();
    }

当我运行启动应用程序时,出现以下异常!

org.springframework.beans.factory.BeanCreationException:在类路径资源 [com/mitchell/csg/acsstatefarmedibundler/filesHandler/FileMonitorBeanRegistry.class] 中定义名称为“amqpInbound”的 bean 创建错误:通过工厂方法进行 Bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.integration.dsl.IntegrationFlow]:工厂方法“amqpInbound”抛出异常;嵌套异常是 java.lang.NoSuchMethodError: org.springframework.integration.amqp.support.DefaultAmqpHeaderMapper: method ()V not found

这是我的 pom.xml。

 <dependency>
          <groupId>org.springframework.integration</groupId>
          <artifactId>spring-integration-amqp</artifactId>
          <version>5.1.0.RELEASE</version>
      </dependency>

我在这里错过任何其他依赖吗?

标签: springspring-bootrabbitmqspring-amqpspring-rabbit

解决方案


由于您提到了 Spring Boot,因此覆盖依赖项的版本是没有意义的。现在看起来你的 Spring Boot 版本不是2.1这使得所有依赖项都与提到的 Spring Integration 版本兼容。

好吧,对您来说简单的答案是从该spring-integration-amqp依赖项中删除一个版本并完全依赖 Spring Boot 管理。


推荐阅读