JMSException : Error deserializing object
843830Aug 30 2004 — edited Jun 1 2007I am trying to put my own Serializable objects into a Topic.
I have a message driven bean listening on this and in the method onMessage, i try to cast the object received to the Serializable object sent.
I get the following error
weblogic.jms.common.JMSException: Error deserializing object
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.jav
a:144)
at DbLoggerBean.doLogging(DbLoggerBean.java:71)
at LoggerBean_8hiuxq_EOImpl.doLogging(LoggerBean_8hiuxq_EOImpl.java:45)
at LoggerBean_8hiuxq_EOImpl_CBV.doLogging(Unknown Source)
at MessageListenerBean.onMessage(MessageListenerBean.java:54)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.spi.LoggingEvent
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClass
Loader.java:198)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClass
Loader.java:223)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:219)
at weblogic.jms.common.ObjectMessageImpl$ObjectInputStream2.resolveClass
(ObjectMessageImpl.java:305)
In my client program that publishes messages to a topic, the code looks like this
class Result implements Serializable {
....
....
}
Result result = new Result();
result.setXXX();
........
logger.info( rslt);
I use the JMSAppender provided by the Log4j. So, I donot have a reference to a Topic object and neither can i invoke topic.createObjectMesage.....
In my MDB, I write like this...
if (message instanceof ObjectMessage)
{
ObjectMessage m = (ObjectMessage) message;
Result rslt = (Result) m.getObject();
/* looks like the m.getObject returns a org.apache.log4j.spi.LoggingEvent
and it has a getMessage() method ...but it returns a string ... and i get a classcastexception
*/
}
I get the Error deserializing object error at the line where i try to getObject() abd cast it to Result.
I use WebLogic 8.1.
Any help in this regard is appreciated.