1

我已经搜索了解决方案,但无法使其工作。这是摘要。我正在尝试实现一个在 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 时,它始终为空。

4

0 回答 0