Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

InvalidClassException on getObject in receiving object JSM Queue

1 view
Skip to first unread message

paskos

unread,
Aug 22, 2002, 1:56:46 PM8/22/02
to

Hi,

I'm running weblogic 7.0.
I have a serializable class called EndUserVO that i wrapp in a JMS Message...when
my receiver try to deserialize it i get an exception (see later).
I have to queues, the first one deserialize the same object succesffully, the
second one throws an exception
Even if i put the following line in my EndUserVO Class :

static final long serialVersionUID = -390776269485461053L;
where the number is given by the serialver tool.

I have this exception :
weblogic.jms.common.JMSException: Error deserializing object
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:140)
at com.xxx.synchronization.xxx.ejb.XXXMessageReceiverBean.processMessage(Unknown
Source)
at com.xxx.messaging.ejb.AbstractQueueReceiverBean.checkMessages(Unknown
Source)
at com.xxx.synchronization.xxx.ejb.XXXMessageReceiverBean_org13d_EOImpl.checkMessages(XXXMessageReceiverBean_org13d_EOImpl.java:45)
at com.xxx.synchronization.ejb.NotifierBean.notifyReceiver(Unknown Source)
at com.xxx.synchronization.ejb.NotifierBean.onMessage(Unknown Source)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:348)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:282)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:263)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2309)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2232)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
----------- Linked Exception -----------
java.io.InvalidClassException: com.xxx.enduser.EndUserVO; Local class not compatible:
stream classdesc serialVersionUID=-2323713357317660516 local class serialVersionUID=-390776269485461053
at java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:523)
at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:567)
at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:936)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at weblogic.jms.common.ObjectMessageImpl.getObject(ObjectMessageImpl.java:128)
at com.xxx.synchronization.xxx.ejb.XXXMessageReceiverBean.processMessage(Unknown
Source)
at com.xxx.messaging.ejb.AbstractQueueReceiverBean.checkMessages(Unknown
Source)
at com.xxx.synchronization.xxx.ejb.XXXMessageReceiverBean_org13d_EOImpl.checkMessages(XXXMessageReceiverBean_org13d_EOImpl.java:45)
at com.xxx.synchronization.ejb.NotifierBean.notifyReceiver(Unknown Source)
at com.xxx.synchronization.ejb.NotifierBean.onMessage(Unknown Source)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:348)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:282)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:263)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2309)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2232)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)


Zach

unread,
Aug 22, 2002, 5:06:16 PM8/22/02
to
You have two different versions of the class. No two ways about it. Make
sure the class file you are using is the same on both the sending side and
receiving side, and/or make sure that they have the same serialUIDVersion.

_sjz.

"paskos" <geh...@hotmail.com> wrote in message
news:3d65...@newsgroups.bea.com...

paskos

unread,
Aug 23, 2002, 2:07:08 PM8/23/02
to

Hi,

thanks for the answer.
I know that the system stores somewhere the old version of my class, but i have
one and only java file stored.
It used to work well but i made somes changes and at that point it stopped working.
I suppose that weblogic stores somwhere a description for my class and i would
like to reset or modify that description but i don't know where.

Can somebody help me ?
thanks

paskos

Zach

unread,
Aug 23, 2002, 7:37:12 PM8/23/02
to
As far as I know it does not store a description of your class. It picks it
up at runtime from the class that you give it. Did you not repack your ear
file? You might also try the general or miscellaneous newsgroup. This
really has nothing to do with JMS.
_sjz.

"paskos" <geh...@hotmail.com> wrote in message

news:3d66...@newsgroups.bea.com...

paskos

unread,
Aug 26, 2002, 10:47:35 AM8/26/02
to

I put it in here because it's the only newsgroup where i found the same type of
error.
0 new messages