1

解決策を検索しましたが、機能させることができませんでした。ここに要約があります。一時キューを使用して同期 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 になります。

4

0 に答える 0