Я пишу приложение весенней загрузки для подписки на тему Google Cloud Pub/Sub для этого. Я использую Google руководство, но когда я запускаю приложение, я получаю эту ошибку
2019-02-02 18:03:10.248 INFO 15080 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2019-02-02 18:03:10.271 INFO 15080 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-02-02 18:03:10.610 ERROR 15080 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 1 of method messageChannelAdapter in tech.garoon.cloud.CloudApplication required a bean of type 'org.springframework.cloud.gcp.pubsub.core.PubSubTemplate' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.cloud.gcp.pubsub.core.PubSubTemplate' in your configuration.
Process finished with exit code 1Как я могу решить эту проблему?
GcpPubSubAutoConfiguration обеспечивает функцию автоконфигурации для создания необходимых bean-компонентов, включая PubSubTemplate. В вашем случае что-то упущено. Пожалуйста, убедитесь, что зависимости на месте, или воссоздайте следующий компонент, чтобы он работал.
@Bean
public PubSubTemplate pubSubTemplate(PubSubPublisherTemplate pubSubPublisherTemplate,
PubSubSubscriberTemplate pubSubSubscriberTemplate) {
return new PubSubTemplate(pubSubPublisherTemplate, pubSubSubscriberTemplate);
}
Кроме того, убедитесь, что GcpContextAutoConfiguration создан на основе следующих свойств в application.properties.
spring.cloud.gcp.credentials.location=${gcp_credentials}
стартер зависимость:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-pubsub</artifactId>
</dependency>
это часть gcp-starter-pubsub. Если приведенный выше ответ помог вам, пожалуйста, примите его.
. У меня есть все зависимости. Я даже могу импортировать GcpPubSubAutoConfiguration. Все еще не работает. По-прежнему не удается получить соответствующий компонент типа «org.springframework.cloud.gcp.pubsub.core.PubSubTemplate».
Решение
Я добавил эту зависимость
implementation 'org.springframework.cloud:spring-cloud-gcp-autoconfigure:1.1.0.RELEASE'
Мои зависимости
dependencies {
implementation 'org.springframework.cloud:spring-cloud-gcp-pubsub:1.1.0.RELEASE'
implementation 'org.springframework.cloud:spring-cloud-gcp-autoconfigure:1.1.0.RELEASE'
implementation "org.springframework.boot:spring-boot-starter-web:2.1.2.RELEASE"
implementation 'org.springframework.integration:spring-integration-core:5.1.2.RELEASE'
}
если вы используете внешний класс конфигурации, который регистрирует ваши каналы, обработчики сообщений и т. д., обязательно аннотируйте класс конфигурации с помощью @Import({GcpPubSubAutoConfiguration.class}).
@Configuration
@Import({GcpPubSubAutoConfiguration.class})
public class PubSubConfig{
}
Спасибо за ваш ответ, я пропустил добавление одной зависимости. ))
implementation 'org.springframework.cloud:spring-cloud-gcp-autoconfigure:1.1.0.RELEASE'