Azure服务总线与Java Spring Boot

3j86kqsm  于 2024-01-06  发布在  Spring
关注(0)|答案(1)|浏览(137)

我正在尝试在wildfly 27中执行springboot应用程序,以连接并侦听来自Azure服务总线的JMS消息。
同样的代码在使用嵌入式tomcat时也能正常工作,但是如果我排除tomcat并在wildfly中部署同样的war文件,它就不能工作了。

错误原因:无法创建持久订阅-未设置客户端ID

我如何让它在WildFly中工作?

  1. @SpringBootApplication
  2. @EnableJms
  3. public class JiraServiceBusApplication extends SpringBootServletInitializer {
  4. public static void main(String[] args) {
  5. SpringApplication.run(JiraServiceBusApplication.class, args);
  6. }
  7. @Override
  8. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  9. return application.sources(JiraServiceBusApplication.class);
  10. }
  11. }
  12. @JmsListener(destination = TOPIC_NAME, containerFactory = "topicJmsListenerContainerFactory",
  13. subscription = SUBSCRIPTION_NAME, concurrency = "1")
  14. public void receiveMessage(Message message) throws JMSException {
  15. spring.jms.servicebus.connection-string=Endpoint=sb://xxxxxxxx.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxxxxxxxxxxxxxxxxx+ASbJ7sBvY=
  16. spring.jms.servicebus.topic-client-id=xxxxxxxxx-xxxxxxxxx-xxxxxxxx
  17. spring.jms.servicebus.pricing-tier=standard

字符串

70gysomp

70gysomp1#

在将Sping Boot 与嵌入式Tomcat服务器一起使用时,连接由嵌入式服务器本身管理。

  • 当部署到WildFly时,连接由应用服务器管理,您可能需要相应地配置JMS连接工厂和客户端ID。

JMS配置到WildFly:

  1. <subsystem xmlns="urn:jboss:domain:messaging-activemq:10.0">
  2. <server name="default">
  3. <jms-connection-factories>
  4. <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>
  5. <pooled-connection-factory name="activemq-ra" transaction="true" connectors="in-vm"/>
  6. <!-- Add your custom connection factory configuration here -->
  7. </jms-connection-factories>
  8. </server>
  9. </subsystem>

字符串

  • 在消息传递子系统中,找到JMS目的地的<jms-queue><jms-topic>配置。
  1. <jms-topic name="yourTopic">
  2. <entry name="java:/jms/yourTopic"/>
  3. <durable>true</durable>
  4. </jms-topic>

  • 打开WildFly配置目录中的standalone.xml文件,在配置中找到<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">部分。


的数据


展开查看全部

相关问题