【问题标题】:Trouble casting JMS Message as TextMessage将 JMS 消息转换为 TextMessage 时遇到问题
【发布时间】:2017-12-01 21:49:36
【问题描述】:

我正在使用 QueueBrowser 来获取并循环遍历 JMS 队列上的消息枚举。当我尝试将 msgs.nextElement() 转换为 TextMessage 时,IntelliJ IDEA 告诉我:

java.lang.ClassCastException: weblogic.jms.common.ObjectMessageImpl cannot be cast to javax.jms.TextMessage

我对 JMS 很陌生,我不太确定 weblogic.jms.common.ObjectMessageImpl 是什么。将 msgs.nextElement() 转换为 Message 似乎工作正常。我的代码如下。

private void readQueueMessage() throws JMSException {
    int counter = 0;
    System.out.println("Starting the subscriber");
    QueueBrowser queueBrowser = queueSession.createBrowser(queue);
    Enumeration msgs = queueBrowser.getEnumeration();
    //queueConnection.start();
    System.out.println("Queue started");
    if ( !msgs.hasMoreElements() ) { 
        System.out.println("No messages in queue");
    } else { 
        while (msgs.hasMoreElements()) { 
            System.out.println(">>> message count: " + ++counter);

            Message message = (Message)msgs.nextElement();
            System.out.println("MessageID: " + message.getJMSMessageID() + "\tPriority: " + message.getJMSPriority() + "\tDeliveryMode: " + message.getJMSDeliveryMode());
            System.out.println("Timestamp: " + message.getJMSTimestamp() + "\tJMSDestination: " + message.getJMSDestination() + "\tReplyTo: " + message.getJMSReplyTo());
            System.out.println("Data: " + ((TextMessage)message).getText());

            if (counter >= 3) break;
        }
    }

    System.out.println("stopping the queue");
    queueConnection.stop();
}

【问题讨论】:

  • 您发送的邮件属于什么类别?看来您期待的是TextMessage,但您却得到了其他东西。

标签: java intellij-idea jms weblogic


【解决方案1】:

JMS 中有几种不同类型的消息。您正在尝试读取基本上包含字符串的TextMessage,但您正在读取的消息实际上是包含Java 对象的ObjectMessage。您应该使用instanceof TextMessage 检查该消息是否为文本消息,如果是其他内容则忽略它或抛出异常。

weblogic.jms.common.ObjectMessageImpl 类只是 WebLogic 对 ObjectMessage 的实现。

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 2014-02-28
    • 2022-01-25
    • 1970-01-01
    • 2021-01-08
    • 2018-01-08
    • 2018-11-23
    • 2013-10-14
    相关资源
    最近更新 更多