【问题标题】:Websphere JMS: Unable to deserialize objectWebsphere JMS:无法反序列化对象
【发布时间】:2017-01-31 01:30:24
【问题描述】:

我正在使用 Websphere MQ 6.x,当从队列中读取对象时抛出以下异常。

Caused by: javax.jms.MessageFormatException: MQJMS1061: Unable to deserialize object
    at com.ibm.jms.JMSMessage.newMessageFormatException(JMSMessage.java:4982)
    at com.ibm.jms.JMSObjectMessage.getObject(JMSObjectMessage.java:289)

我可以使用 WMQ 工具查看消息(类)的序列化版本。但是当应用程序读取它时,就会发生此异常。

有什么想法吗?

【问题讨论】:

    标签: java jms ibm-mq


    【解决方案1】:

    我认为早期版本 6.x 在原始类型方面存在问题。也许是这个:http://www-01.ibm.com/support/docview.wss?uid=swg1IC50448

    【讨论】:

    • 不,我的类不包含持有原语的 Class 对象
    【解决方案2】:

    您是否尝试过使用应用程序以外的其他工具从队列中读取和写入消息?

    您可以尝试查看是否可以使用 RFH Util 或 MQ Explorer 读取消息并将消息写入队列,以查看问题出在您的应用程序还是 MQ 基础架构上。

    正在从 MQ 队列读取消息的应用程序是什么?

    HTH

    芒露

    【讨论】:

    • 我能够连接到队列管理器并使用 WMQ 浏览队列中的消息,没有任何问题
    • 正如 Nicholas 所说,我认为是时候查看整个堆栈跟踪以了解可能导致此问题的原因。
    • 日志的其余部分包含根据公司政策我无法分享的专有信息。对不起。
    【解决方案3】:

    读取消息的应用程序是否可能在其类路径中没有类?或者更微妙的问题,它可能对线程的上下文类加载器不可见。

    您是否有更长的堆栈跟踪可以提供更多信息?

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 2014-08-04
      • 2015-05-29
      • 1970-01-01
      相关资源
      最近更新 更多