首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring-boot应用由于RabbitServiceAutoConfiguration无法部署到PCF

Spring-boot应用由于RabbitServiceAutoConfiguration无法部署到PCF
EN

Stack Overflow用户
提问于 2019-05-23 13:44:08
回答 1查看 946关注 0票数 0

我得到了以下错误:

未找到唯一的服务匹配接口org.springframework.amqp.rabbit.connection.ConnectionFactory

描述:

  • RabbitMQ在Dev服务器上运行Pivotal Cloud Foundry platform。
  • 在PCF平台上,没有RabbitMQ服务Springboot应用程序使用spring-cloud-starter-bus-amqp连接到RabbitMQ。
  • 如果Springboot应用程序在本地运行,一切都像spring-cloud-starter-bus-amqp一样工作当Springboot应用程序到RabbitMQ时,我得到了上面的

根本原因是PCF使用autoconfigure

  • 创建了D19>,当然它失败了,因为我的PCF空间根本没有RabbitMQ服务。<代码>H220<代码>F221

问题:如何配置Springboot应用程序并将其部署到PCF上而不会出现问题?

我试过的..。(见下图),但它不起作用。

@Profile("cloud")
@Configuration
@EnableConfigurationProperties(RabbitmqInfo.class)
@Slf4j
public class RabbitmqConfig extends AbstractCloudConfig {

    @Bean
    public ConnectionFactory rabbitmqConnectionFactory(@Autowired RabbitmqInfo rabbitmq) {

        CachingConnectionFactory factory = new CachingConnectionFactory();
        factory.setHost(rabbitmq.getHost());
        factory.setPort(rabbitmq.getPort());
        factory.setUsername(rabbitmq.getUsername());
        factory.setPassword(rabbitmq.getPassword());

        log.info("[*] rabbitmqConnectionFactory uses CachingConnectionFactory");
        log.info("[*] rabbitmq.host: {}", factory.getHost());

        return factory;
    }

    @Bean
    public RabbitTemplate rabbitTemplate(ConnectionFactory rabbitmqConnectionFactory) {
        return new RabbitTemplate(rabbitmqConnectionFactory);
    }

}

我的build.gradle依赖项:

...
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-bus-amqp', version: '2.1.1.RELEASE'
...

堆栈跟踪:

bean Bean :上下文初始化期间遇到异常-正在取消刷新尝试: org.springframework.beans.factory.BeanCreationException:通过工厂方法实例化org.springframework.cloud.stream.binder.rabbit.config.RabbitServiceAutoConfiguration$CloudProfile$CloudConnectors$UseCloudConnectors:

实例化中定义的名为“”rabbitConnectionFactory“”的Bean时出错;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化org.springframework.amqp.rabbit.connection.ConnectionFactory:工厂方法“”rabbitConnectionFactory“”引发异常;嵌套异常是org.springframework.cloud.CloudException:找不到唯一的服务匹配接口Bean。“”应为% 1,但找到%0

谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 03:26:08

在查看了Spring cloud stream源代码后,我找到了绕过平台上Rabbitmq的云配置的解决方案。这样,如果你在PCF平台上没有Rabbitmq,你仍然可以毫无问题地将Spring Boot App部署到PCF上。在我的例子中,Rabbitmq在平台外的Dev VM服务器上运行。

application.properties中,设置以下内容:

spring.cloud.stream.override-cloud-connectors=true
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56268723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档