NoSuchBeanDefinitionException при запуске приложения Spring в приложении Docker в литейном облачном хранилище. - PullRequest
0 голосов
/ 14 октября 2019

Я получаю NoSuchBeanDefinitionException при попытке развернуть мое весеннее приложение в докере на PCF. Образ докера - это тот, который я построил, и он отлично работает вне PCF.

Я могу запустить тот же образ докера, локально подключаясь к тому же серверу конфигурации. Конфигурационный сервер - это единственная конфигурация, предоставляемая при запуске приложения локально или в PCF.

Это же приложение прекрасно работает в PCF, даже если оно просто развернуто как jar, а не как образ докера.

Класс с проблемой:

@Component
@EnableRabbit
@Slf4j
class ListenerProblemListener extends Listener {

    @Autowired
    ListenerProblemListener(ErrorServiceConfiguration errorServiceConfiguration,
                            MessageQueueLibrary messageQueueLibrary,
                            CachingConnectionFactory cachingConnectionFactory,
                            ProblemService problemService,
                            Sender sender) {
        super(cachingConnectionFactory, messageQueueLibrary, problemService, sender)
        log.info("Connecting to queues ${errorServiceConfiguration.allProblemQueues}")
    }
}

Я получаю следующее исключение только при попытке сделать это в PCF.

2019-10-14T11:29:49.795-05:00 [APP/PROC/WEB/0] [OUT] [WARN ] 2019-10-14 16:29:49.794 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'listenerProblemListener' defined in URL [jar:file:/app.jar!/BOOT-INF/classes!/com/identifix/crawlererrorservice/listener/ListenerProblemListener.class]: 
Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type 'org.springframework.amqp.rabbit.connection.CachingConnectionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

1 Ответ

0 голосов
/ 14 октября 2019

Оказывается при запуске в докере в PCF мне нужно было установить env var SPRING_RABBITMQ_HOST. Я не уверен, почему предоставить его на сервере конфигурации еще недостаточно.

...