spring 使用者队列未使用虚拟主题中的消息

aoyhnmkz  于 2023-09-29  发布在  Spring
关注(0)|答案(2)|浏览(128)

我尝试在activeMQ中使用队列来从虚拟主题中出队消息。我尝试发送一些消息,它显示在“消息排队”下的主题中,但无法使用。
我创建的虚拟主题名为VirtualTopic.AA,使用者名为Consumer.client1.VirtualTopic.AA。
在consumer.client1.VirtualTopic.AA中,我可以看到有一个消费者,但它无法从虚拟主题中取出消息。
有人知道为什么会这样吗?是否需要更改xml文件中的配置中的某些设置?

inkz8wg9

inkz8wg91#

当您使用Spring的JmsTemplate发布到虚拟主题时,您需要通过将pubSubDomain属性设置为“true”来为主题配置它。
关于JmsTemplate documentation
如果要使用动态目的地创建,则必须使用“pubSubDomain”属性指定要创建的JMS目的地的类型。对于其他操作,这不是必需的。点到点(点对点)是默认域。
在JmsDestinationAccessor#setPubSubDomain中:
pubSubDomain -“true”表示发布/订阅域(主题),“false”表示点对点域(队列)

6pp0gazn

6pp0gazn2#

你可以使用常规的jmsTemplateorg.springframework.jms.core没有设置pubSubDomaintrue值,如果你传递ActiveMQTopic示例与您的主题的名称。

jmsTemplate.convertAndSend(new ActiveMQTopic("topicName"));

相关问题