Проблема с Google Cloud Pub/Sub API и загрузочным приложением Spring

Я пишу приложение весенней загрузки для подписки на тему 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

Как я могу решить эту проблему?

1
0
6 101
3

Ответы 3

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>

Спасибо за ваш ответ, я пропустил добавление одной зависимости. )) implementation 'org.springframework.cloud:spring-cloud-gcp-autoconfigure:1.‌​1.0.RELEASE'

Rid Hrant 05.02.2019 09:33

это часть gcp-starter-pubsub. Если приведенный выше ответ помог вам, пожалуйста, примите его.

Barath 07.02.2019 06:45

. У меня есть все зависимости. Я даже могу импортировать GcpPubSubAutoConfiguration. Все еще не работает. По-прежнему не удается получить соответствующий компонент типа «org.springframework.cloud.gcp.pubsub.core.PubSubTemplate».

JeneralJames 16.12.2020 16:58

Решение

Я добавил эту зависимость

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{

}

Другие вопросы по теме