我写的Spring Boot 程序订阅谷歌云Pub/Sub主题为此我使用谷歌的教程,但当我运行应用程序我得到这个错误
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
如何解决这个问题?
5条答案
按热度按时间8e2ybdfx1#
GcpPubSubAutoConfiguration提供了自动配置功能,可以创建必要的bean,包括PubSubTemplate。在你的情况下,有些东西是错过了,请确保依赖关系到位或重新创建以下bean使其工作。
另外,请确保根据application.properties中的以下属性创建GcpContextAutoConfiguration。
启动器依赖:
jgwigjjp2#
解决方案
我添加了这个依赖项
我的依赖关系
nwo49xxi3#
如果使用外部配置类来注册通道、消息处理程序等,请确保使用
@Import({GcpPubSubAutoConfiguration.class})
注解配置类olhwl3o24#
我在使用这些版本的spring-boot和spring-cloud-gcp-starter-pub时遇到了这个问题:
在我的www.example.com中application.properties我有
spring.cloud.gcp.pubsub.enabled=false
用于本地开发。我删除了spring.cloud.gcp.pubsub.enabled=false
,它工作了。虽然现在它创建了一个到pubsub gcp主题的连接,但对于本地开发,您需要注解掉发布,以避免发送消息。guz6ccqo5#
THE ANSWER IN ANOTHER THREAD THIS IS BASED ON
更多细节见上面,我不会费心重新创作,因为那里的海报很好地说明了这个问题。
为了更具体地提出解决方案,在我的案例中,这是使用
org.springframework.cloud
提供的工件而不是com.google.cloud
提供的工件的问题。当我切换到后者时,GcpPubSubAutoConfiguration
就像预期的那样启动了我认为这是否是一个适合你的解决方案将关系到你使用什么版本的Spring/Sping Boot 。看看这些博客文章,讨论这个问题: