Я получаю 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: {}