我已经搜索了解决方案,但无法使其工作。这是摘要。我正在尝试实现一个在 Glassfish 2.1 上运行的 Web 服务,它使用临时队列实现同步 JMS 请求响应。它向远程服务器上运行的另一个 Glassfish 应用程序发送消息。我能够发送消息并对其进行处理,但是当最终消息被发送回临时队列时,Web 服务将响应设为空。这是代码:
私人消息请求回复(字符串消息,队列 jmsRequestResponse,ConnectionFactory jmsRequestRespConnFactory){
javax.jms.Connection conn = null;
javax.jms.MessageConsumer consumer = null;
javax.jms.Message replyMsg = null;
javax.jms.Session sess = null;
try {
logger.debug("[requestreply input message[" + msg);
conn = jmsRequestRespConnFactory.createConnection();
conn.start();
sess = conn.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
javax.jms.Message reqMessage = sess.createTextMessage(msg);
javax.jms.Destination replyDestination = (jmsRequestResponse instanceof javax.jms.Queue) ? sess.createTemporaryQueue() : sess.createTemporaryTopic();
reqMessage.setJMSReplyTo(replyDestination);
sess.createProducer(jmsRequestResponse).send(reqMessage);
replyMsg = consumer.receive(60000);
consumer.close();
sess.close();
conn.close();
} catch (JMSException ex) {
logger.debug("exception in requestreply");
} finally {
if (consumer != null) {
try {
consumer.close();
} catch (Exception e) {
}
}
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
}
}
}
return replyMsg;
}
我在这里想念什么?当我打印replyMsg 时,它始终为空。