Google Cloud Pub/Sub API 和 Spring Boot 应用程序存在问题
Posted
技术标签:
【中文标题】Google Cloud Pub/Sub API 和 Spring Boot 应用程序存在问题【英文标题】:Problem with Google Cloud Pub/Sub API and Spring boot application 【发布时间】:2019-06-26 21:15:21 【问题描述】:我为此编写了用于订阅 Google Cloud Pub/Sub 主题的 Spring Boot 应用程序,我使用 Google 的 tutorial,但是当我运行应用程序时出现此错误
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】:GcpPubSubAutoConfiguration 提供自动配置功能来创建必要的 bean,包括 PubSubTemplate。在您的情况下,遗漏了一些东西,请确保依赖项到位或重新创建以下 bean 以使其工作。
@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'
它是 gcp-starter-pubsub 的一部分。如果以上回答对您有帮助,请采纳。
。我有所有的依赖项。我什至可以导入 GcpPubSubAutoConfiguration。还是不行。仍然得到 No qualifying bean of type 'org.springframework.cloud.gcp.pubsub.core.PubSubTemplate' available.【参考方案2】:
解决方案
我添加了这个依赖
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'
【讨论】:
【参考方案3】:如果使用注册频道、消息处理程序等的外部配置类,请确保使用 @Import(GcpPubSubAutoConfiguration.class)
注释配置类
@Configuration
@Import(GcpPubSubAutoConfiguration.class)
public class PubSubConfig
【讨论】:
以上是关于Google Cloud Pub/Sub API 和 Spring Boot 应用程序存在问题的主要内容,如果未能解决你的问题,请参考以下文章
Google PubSub 模拟器是不是可以与 Google Cloud Pub/Sub API 客户端库一起使用?
Google Cloud Pub/Sub,使用 HTTP PUSH 请求发布
使用 Google Cloud pub sub 实现 MQTT
Cloud Pub/Sub API Explorer 不工作
Google Cloud Pus/Sub :: google.api_core.exceptions.DeadlineExceeded: 504 Deadline Exceeded