저는 jms 및 activemq를 처음 사용합니다. 내가 activemq에 하나의 정적 대기열에 하나의 메시지를 생성하고 getJMSReplyTo를 사용하여 임시 대기열로 답장을 다시받습니다. 코드는 내 대답 처리기가 지금 임시 큐에서 결과를 얻고있다다른 세션의 임시 대기열에서 메시지를 가져 오는 방법
@Override
public void onMessage(Message message) {
try
{
System.out.println(message.getStringProperty("status"));
}
catch (JMSException e)
{
e.printStackTrace();
}
}
을 다음과
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();
따르고있다. 같은 세션에 있기 때문입니다. 내 질문은 임시 대기열 이름을 사용하여 differesnt 세션에서 임시 대기열에서 메시지를 가져오고 싶습니다. 임시 큐 이름을 사용하는 다른 클라이언트의 임시 큐에서 메시지를 가져 오려면 어떻게해야합니까? .
당신이 제공하는 모든 JMS 세션과 함께 작업 할 수 리스너, 그것은 당신이 메시지를 배치 한 것과 동일한 세션 필요는 없습니다 . – Chetya