我发送简单的java bean过JMS到另一个Java应用程序的Java应用程序。通过Tibco的JMS发送序列化对象将引发反序列化失败的错误
这项工作完全没ActiveMQ的,但是当我切换到Tibco的JMS经纪人引发错误的接收应用程序。 bean实现了序列化接口,并且两个应用程序从包含bean的类相同的罐子运行。
我开始使用TIBCO JMS tibjmsd.exe。版本是4.1.0。
从发送Java客户端内的简单的检查产生下面的错误:
代码:
..
....
MyBean bean = new MyBean(1,”Test”);
final ObjectMessage msg = jmssession.createObjectMessage(bean);
try {
msg.getObject();
} catch (Exception e) {
LOG.error("Problem with storing bean", e);
}
....
..
从上面的代码的错误消息:
javax.jms.MessageFormatException: Deserialization failed: [Ljava.lang.String;
at com.tibco.tibjms.TibjmsObjectMessage.getObject(TibjmsObjectMessage.java:199)
相同的代码工作没有错误运行ActiveMQ 有什么我可以做或检查?
发送应用程序使用JMS – ManojGumber 2012-04-24 12:07:17
的执行发送应用程序使用客户端的Tibco罐。连接是通过一个通用的JMS实现,即Context.lookup连接工厂,得到连接等 – Ben 2012-04-24 15:14:14
进一步的研究发现,当JavaBean的具有基本数组错误“反序列化”的发生做出(即字符串[])。更改为列表修复了问题,但是这确实是这种情况,Tibco无法接受包含原始阵列的对象? –
Ben
2012-04-24 16:49:09