MQJMS1061: Unable to deserialize object message due to java.lang.ClassNotFoundException when using WebSphere MQ
http://www.diybl.com/ 2008-1-31 网络 点击:
[ 评论 ]
文章搜索:
【点击打包该文章】

APAR status
Closed as program error.
Error description
错误:
MQJMS1061: Unable to deserialize object message due to java.lang.ClassNotFoundException when using WebSphere MQ
中文可能是:
Caused by: javax.jms.MessageFormatException: MQJMS1061: 无法并行化对象
at com.ibm.jms.JMSMessage.newMessageFormatException(JMSMessage.java:4542)
at com.ibm.jms.JMSObjectMessage.getObject(JMSObjectMessage.java:266)
解决办法:
http://www-1.ibm.com/support/docview.wss?apar=only&uid=swg1IY75589
APAR status
Closed as program error.
Error description
When attempting to get a JMS Object Message using WebSphere MQ,the JMS client application receives the following error:MQJMS1061: Unable to deserialize object message due tojava.lang.ClassNotFoundException
Local fix
MQ modified to use Class.forName(clsName,cl) instead ofloadclass() as JVM classloaders do not load non-systemarray classes using loadclass().
Problem summary
****************************************************************USERS AFFECTED:This problem affects customers who use the Java Message Service(JMS) functionality provided with WebSphere MQ Version5.3 and 6.0.Platforms affected: All Distributed (iSeries, all Unix and Windows) +Java****************************************************************PROBLEM SUMMARY:This problem was caused by the way the MQObjectInputStreamclass implemented the standard Java method resolveClass().Previously, the method made the following calls:- Call loadClass() using the MQObjectInputStream''s classloader.- Call Class.forName() using the default class loader.However, in certain circumstances, this sequence of calls doesnot work, resulting in the ClassNotFoundException.
Problem conclusion
Following recommendations from the Java Technology Center, theresolveClass() method was changed to adopt the followingmechanism for locating classes:- Call Class.forName() using the MQOjbectInputStream''s classloader.- Call Class.forName() using the default class loader.- Call loadClass() using the MQObjectInputStream''s classloader.The Java Technology Center recommend that all customerimplementations of resolveClass() adopt this method of locatingclasses.---------------------------------------------------------------The fix is targeted for delivery in the following PTFs: v5.3Platform Fix Pack 12-------- --------------------Windows U200242AIX U803326HP-UX (PA-RISC) U803577Solaris (SPARC) U803579iSeries SI21717Linux (x86) U803580Linux (zSeries) U803582Linux (Power) Not applicable v6.0Platform Refresh Pack 6.0.1.0-------- --------------------Windows U200243AIX U803805HP-UX (PA-RISC) U803943Solaris (SPARC) U803944iSeries SI17318Linux (x86) U803945Linux (zSeries) U803946Linux (Power) U803947The latest available maintenance can be obtained from''WebSphere MQ Recommended Fixes''http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037If the maintenance level is not yet available, information onits planned availability can be found in ''WebSphere MQPlanned Maintenance Release Dates''http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309---------------------------------------------------------------
Temporary fix
Comments
[1] [2]
如果图片或页面不能正常显示请点击这里 站内搜索:
推荐文章 |
