[jboss-user] [JBoss Messaging] - HornetQ can't resolve class of ObjectMessage payload.

Kevin Healy do-not-reply at jboss.com
Sun Apr 10 10:21:20 EDT 2011


Kevin Healy [http://community.jboss.org/people/kjh21] created the discussion

"HornetQ can't resolve class of ObjectMessage payload."

To view the discussion, visit: http://community.jboss.org/message/599052#599052

--------------------------------------------------------------
Following is my environment

JBossAS [6.0.0.Final "Neo"]
HornetQ Server version 2.1.2.Final (Colmeia, 120)

I'm getting the same error described here 

 http://community.jboss.org/message/517604#517604 http://community.jboss.org/message/517604#517604

and here 

 http://community.jboss.org/thread/162024 http://community.jboss.org/thread/162024


Specifically, HornetQ is unable to resolve the class of an object that serves as the payload of an ObjectMessage.

The exception and stack trace are as follows:

477 SEVERE [toplevel.services.push.ProxyMessageListener] Caught Exception processing incoming message:  javax.jms.JMSException: toplevel.services.heartbeat.Heartbeat
01:18:36,477 ERROR [STDERR] javax.jms.JMSException: toplevel.services.heartbeat.Heartbeat

01:18:36,477 ERROR [STDERR]     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

01:18:36,477 ERROR [STDERR]     at java.security.AccessController.doPrivileged(Native Method)

01:18:36,477 ERROR [STDERR]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

01:18:36,477 ERROR [STDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

01:18:36,493 ERROR [STDERR]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

01:18:36,493 ERROR [STDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

01:18:36,493 ERROR [STDERR]     at java.lang.Class.forName0(Native Method)

01:18:36,493 ERROR [STDERR]     at java.lang.Class.forName(Class.java:247)

01:18:36,493 ERROR [STDERR]     at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:284)

01:18:36,493 ERROR [STDERR]     at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1152)

01:18:36,493 ERROR [STDERR]     at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:886)

01:18:36,493 ERROR [STDERR]     at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:505)

01:18:36,493 ERROR [STDERR]     at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:450)

01:18:36,493 ERROR [STDERR]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

01:18:36,493 ERROR [STDERR]     at java.lang.Class.forName0(Native Method)

01:18:36,493 ERROR [STDERR]     at java.lang.Class.forName(Class.java:247)

01:18:36,493 ERROR [STDERR]     at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:603)

01:18:36,493 ERROR [STDERR]     at org.hornetq.utils.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:69)

01:18:36,493 ERROR [STDERR]     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)

01:18:36,493 ERROR [STDERR]     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)

01:18:36,493 ERROR [STDERR]     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)

01:18:36,493 ERROR [STDERR]     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)

01:18:36,493 ERROR [STDERR]     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)

01:18:36,493 ERROR [STDERR]     at org.hornetq.jms.client.HornetQObjectMessage.getObject(HornetQObjectMessage.java:158)

01:18:36,493 ERROR [STDERR]     at gov.dhs.st.bordernet.services.push.ProxyMessageListener.onMessage(ProxyMessageListener.java:71)

01:18:36,493 ERROR [STDERR]     at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:91)

01:18:36,493 ERROR [STDERR]     at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:822)

01:18:36,493 ERROR [STDERR]     at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:46)

01:18:36,493 ERROR [STDERR]     at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:940)

01:18:36,493 ERROR [STDERR]     at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100)

01:18:36,493 ERROR [STDERR]     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

01:18:36,493 ERROR [STDERR]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

01:18:36,493 ERROR [STDERR]     at java.lang.Thread.run(Thread.java:662)


HornetQ is able to resolve the class of an ObjectMessage when my receiving client is an MDB but not when it is a client MessageListener that I have deployed as part of a JBoss system service.

Following is a representative view of the package structure of my deployment


my.ear
 |
 |
 |--------> payload-objects.jar
 |    |
 |    |--------> class(es) used as payload of ObjectMessage located here (and below.)
 |
 |--------> my-ejb.jar
 |    |
 |    |--------> my-service.xml
 |    |
 |    |--------> toplevel
 |    |    |
 |    |    |--------> mdb
 |    |    |     |
 |    |    |     |--------> MDB's located here (and below.)  *HornetQ references to classes in payload-objects.jar resolve fine.*
 |    |    |
 |    |    |--------> services
 |    |          |
 |    |          |--------> Other MessageListeners located here (and below.) *HornetQ references to classes in payload-objects.jar fail!*
 |
 |--------> my-war.war
      |
      |--------> WEB-INF
           |
           |--------> classes
           |    |
           |    |--------> no HornetQ MessageListeners here (or below) but other references to classes in payload-objects.jar here (and below) resolve fine.
           |
           |--------> lib
                |
                |--------> payload-objects.jar


Please advise.


Kevin H.
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/599052#599052]

Start a new discussion in JBoss Messaging at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2042]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110410/7c4c98aa/attachment-0001.html 


More information about the jboss-user mailing list