E 02/07/19-07:51:49.358 [-5] JMSListener例外:Java.lang.ClassCa

  • 本文关键字:例外 JMSListener Java ClassCa lang 19-07 jms
  • 更新时间 :
  • 英文 :

E 02/07/19-07:51:49.358 [-5]  JMSListener exception : java.lang.ClassCastException: com.ibm.jms.JMSMessage cannot be cast to javax.jms.TextMessage

这是一个tick虫。我们在队列上输入了XML消息,我们的代码消耗了这没问题。第二天,我们将另一个XML消息放在同一队列上,同一代码丢弃了此错误。

我正在寻找有关如何从实际发生的事情中获取更多信息的建议,或者如果其他人与JMS有间歇性的类别例外。

请注意,并非所有'XML'消息都以JMS textMessage发送。我遇到了同一件事。某些应用程序将决定将XML内容发送为JMS BytesMessage(并将文本放入字节阵列主体中(。因此,请确保您的发送确实向您发送了文字信息。

看到这一点的一种方法是停止您的消费者并使用MQExplorer查看排队的消息:命名属性mcd.msd如果将其作为适当的MQ JMS TextMessage发送,则应显示JMS_TEXT。如果从非JMS应用程序收到数据,则MQ格式很重要。如果格式为mqfmt_string,则将消息作为JMS TextMessage接收。否则,将其作为JMS BytesMessage接收!

因此,要么更改发布者以设置格式为mqfmt_string的值,要么更改您的消费者应用程序以将铸件删除到textMessage中,还可以接受字节介绍并从身体的字节数组中构造文本。

最新更新