gpt4 book ai didi

java - 如何在不同 session 中从临时队列中获取消息

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:12 24 4
gpt4 key购买 nike

我是 jms 和 activemq 的新手。我向 activemq 中的一个静态队列生成一条消息,并使用 getJMSReplyTo 将回复返回到临时队列。代码如下

ActiveMQConnectionFactory connectionFactory = new  ActiveMQConnectionFactory("tcp://localhost:61616");

// Create a Connection
Connection connection = connectionFactory.createConnection();
connection.start();

// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);


// Create the destination (Topic or Queue)
Destination destination = (Destination) session.createQueue("PostWithParameter_Queue");

// Create a MessageConsumer from the Session to the Topic or Queue
MessageConsumer consumer = session.createConsumer(destination);
//consumer.setMessageListener(new StaticQueueListener());
// Wait for a message
Message message = (Message) consumer.receive();
MessageConsumer consumer1 = session.createConsumer(message.getJMSReplyTo());
consumer1.setMessageListener(new ReplyHandler());
consumer.close();
session.close();

我的回复处理程序如下

@Override
public void onMessage(Message message) {

try
{

System.out.println(message.getStringProperty("status"));
}
catch (JMSException e)
{
e.printStackTrace();
}
}

现在我正在从临时队列中获取结果。因为它在同一个 session 中。我的问题是我想使用临时队列名称从不同 session 中的临时队列获取消息。如果我想使用临时队列名称从不同客户端的临时队列中获取消息,我将如何做到这一点? 。

最佳答案

通常,您会设置reply-to jms header ,然后无论您在何处使用消息(例如,当然在不同的 session 中..),您都可以提取JMSReplyTo header (这将是临时目标)并仅回复该 header 。

您应该查看 ActiveMQ wiki:

http://activemq.apache.org/how-should-i-implement-request-response-with-jms.html

关于java - 如何在不同 session 中从临时队列中获取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19705413/

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