我的问题有一个简单的POC。我有一个生产者和一个消费者来读写ObjectMessage到Qpid队列。 Dummy对象拥有的所有东西都是String。 Dummy对象也是Serializable。生产者似乎正在将对象写入队列而不抛出错误,但正在侦听队列的Consumer无法对Dummy对象进行反序列化。
OnMessage(收到消息时),简单 Dummy dummyObj =(Dummy)((JMSObjectMessage)arg0).getObject(); 抛出以下错误 -
javax.jms.MessageFormatException: Could not deserialize message: java.io.EOFException
at org.apache.qpid.client.message.JMSObjectMessage.getObject(JMSObjectMessage.java:146)
at producer.QpidConsumer.onMessage(QpidConsumer.java:81)
我还检查过Dummy对象是否在一个简单的POC中进行序列化/反序列化而没有任何问题来测试序列化。我不知道我错过了什么。
我正在使用Qpid 0.6并使用JNDI加载Qpid上下文。 请帮忙。
感谢。
答案 0 :(得分:0)
API在进入调试点之前对数据进行了反序列化。因此问题。