当前位置: 首页 > 知识库问答 >
问题:

Spring JMS 订户无法接收消息?

陆昂然
2023-03-14

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

我能够使用JMSTemplate从我的发布者向主题发送消息。

但是每当我在订阅服务器中调用 JmsTemplate.receive() 时,它都会进入等待状态,我无法在我的订阅服务器中接收消息。

但是,如果使用侦听器作为订阅服务器,或者在我使用发布服务器发布消息时启动新线程,则可以使用 JmsTemplate 在订阅服务器中接收消息。

寻求帮助!

共有1个答案

令狐宏伟
2023-03-14

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

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

无论您使用哪种订阅模式 - 异步(消息侦听器)或同步(接收),您都需要在之前创建订阅者。

您可以使用

subscriber.receive(long timeout);

如果您不想无限期等待。

 类似资料:
  • 我在远程机器上设置了Kafka和动物园管理员。在那台机器上,我可以看到下面使用官方网站上的测试方法工作。 但是当我使用本地消费者脚本时,它就不起作用了: 我试着把它改成: 然后运行客户端使用者脚本,它会给出错误: [2017-08-11 15:49:01,591]获取相关id为3的元数据时警告错误:{listings-incoming=leader_not_available}(org.apach

  • 我是一个使用python进行套接字编程的初学者。我正在做我的课程项目。我的项目的一部分需要用不同的端口发送和接收UDP消息。提供了名为robot的服务器程序,我需要编写名为student的客户端程序,它可以与机器人进行交互。因此,我不能显示服务器程序中的所有源代码。 这是服务器程序中与UDP套接字相关的部分 这是我的客户端程序。s3 是 UDP 套接字。我可以成功地向服务器程序发送消息,但无法从中

  • 如果我创建上面的类并尝试在tomcat7上部署war,我会看到以下错误。

  • 嗨,我是Kafka的新手,我有一个快速的问题。 我实现了一个kafka生产者和消费者zookeeper和生产者在另一个服务器(192.168.10.233)中运行,消费者在另一个服务器(192.168.10.234)中运行,两者都是本地连接的 我还从外面查了192.168.10.233:9092,港口是否没有被任何东西堵塞。

  • 概述 为了能够让轻应用订阅号的开发者接收到用户在消息窗口的留言消息,开发者可以在管理后台设置消息服务器并开启接收用户对话消息模式。 设置消息服务器时接需要提供可用的接收消息的回调URL地址,为了让通信更加安全,建议使用https。 设置成功并开启了接收对话消息模式后,用户在轻应用或订阅号窗口里发送的消息会推送给设置的URL,服务器接收到消息后,可以通过异步发送消息接口给用户回复消息。 设置消息服务

  • 嗨,我不能收到确认订阅请求从亚马逊,尝试了一切。我的endpointurl是:。我尝试了以下代码片段来接收响应:1)-> 2)-> 请帮助我如何接收来自amazon的响应,也请指出我是否在代码中做错了什么或者我遗漏了任何一步。多谢了。

  • 我正在使用代码实现Azure服务总线主题,这些主题可以在以下位置找到:https://docs.microsoft.com/en-us/Azure/service-bus-messaging/service-bus-dotnet-how-to-use-topics-subscriptions 我尝试运行订阅者程序的两个实例,它包含以下方法: 但是,这不允许两个订户都接收消息,它接收的消息是两个订户

  • 我刚刚开始学习Java。我修改了服务器/客户端通信程序的客户端代码,为客户端创建了两个线程,一个是用于接收用户输入的主线程,另一个是用于接收服务器响应的inputThread。我确信服务器已经向客户机发送了响应,但是,在客户机上没有获得响应消息。 这是我的代码。有谁能帮我弄明白吗?谢谢