解決策を検索しましたが、機能させることができませんでした。ここに要約があります。一時キューを使用して同期 JMS 要求応答を実装する Glassfish 2.1 で実行される Web サービスを実装しようとしています。リモートサーバーで実行されている別の Glassfish アプリケーションにメッセージを送信します。メッセージを送信して処理することはできますが、最終メッセージが一時キューに送り返されると、Web サービスは応答を null として受け取ります。コードは次のとおりです。
プライベート メッセージ requestReply(String msg, Queue 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 を出力すると、常に null になります。