gpt4 book ai didi

java - Spring JMS订阅者无法接收消息?

转载 作者:行者123 更新时间:2023-12-01 13:38:51 24 4
gpt4 key购买 nike

我正在使用 Spring JMS 和 WebSphere Default Messaging Provider 来满足我的消息传递需求。我在 WAS 上创建了一个主题和连接工厂。

我可以使用发布商的 JMSTemplate 向主题发送消息。

但是每当我在订阅者中调用 JmsTemplate.receive() 时,它就会进入等待状态,并且我无法在订阅者中接收消息。

但是,如果使用监听器作为订阅者,或者每当我使用发布者发布消息时启动一个新线程,我就可以使用 JmsTemplate 在订阅者中接收消息。

寻求帮助!

最佳答案

消息不存储在主题中。如果您创建发布者,发送消息,然后启动订阅者,则不会订阅任何消息。在发布时,如果有任何订阅者订阅了该主题,则只有这些订阅者才会收到该消息。如果不存在订阅者,则消息将被丢弃。

它进入等待状态,这意味着它正在等待来自 JMS 服务器的消息,并且当前没有可用的消息。

无论您使用哪种订阅模式 - 异步(MessageListener)或同步(接收),您都需要先创建订阅者。

你可以使用

subscriber.receive(long timeout);

如果您不想无限期地等待。

关于java - Spring JMS订阅者无法接收消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com