问题描述
我正在编写一个报告服务,以接收来自Azure Service Bus主题订阅的消息。
我遵循了此初始指南-How to use the Spring Boot Starter for Azure Service Bus JMS,并在服务文件中仅将@JmsListener
配置为不指定JmsConnectionFactory
,以便使其恢复为默认值,但是这返回了显示的错误日志下方,其中jmsConnectionFactory
Bean返回NullPointerException
。
我依次查看了Bauldung - Getting Started with Spring JMS
和Baeldung - Messaging with JMS,以获取有关如何在初始实施无法运行但没有运气的情况下配置jmsConnectionFactory
的指导,上面的文章,因为它仍然返回下面的错误日志。
然后,我在StackOverflow上进行了深入研究,发现了这个问题-Spring Boot - Error creating bean with name 'jmsConnectionFactory',然后指向了这个问题-Disabling Spring JMS Auto configuration in Spring Boot Application,这使我在{{1 }}。这实际上是可行的,但是我觉得有点奇怪,我应该排除该类,并觉得好像我可能在做其他事情。
我基本上是在寻找关于我在做的是正常做法还是有更好的方法进行此设置的任何见解,因为我不太喜欢这样做-{{1 }}。对我来说,解决一个潜在的问题似乎有些技巧。任何帮助/意见将不胜感激。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
ReportingServiceApplication.kt
ServiceBusJMSAutoConfiguration::class
样本监听器-AwardEditEventService.kt
@SpringBootApplication
build.gradle.kts
@SpringBootApplication(exclude = [ServiceBusJMSAutoConfiguration::class])
以下是初始错误的日志-
@SpringBootApplication(exclude = [ServiceBusJMSAutoConfiguration::class])
class ReportingServiceApplication
fun main(args: Array<String>) {
runApplication<ReportingServiceApplication>(*args)
}
解决方法
您需要为服务总线指定定价层,如下所示:
spring:
jms:
servicebus:
connection-string: Endpoint=sb://xxx
idle-timeout: 30000
pricing-tier: Standard