[jboss-jira] [JBoss JIRA] (AS7-1271) Fired object messages violate classloaders
Jeff Mesnil (JIRA)
jira-events at lists.jboss.org
Wed Jul 25 05:20:08 EDT 2012
[ https://issues.jboss.org/browse/AS7-1271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707709#comment-12707709 ]
Jeff Mesnil commented on AS7-1271:
----------------------------------
[~erce]this is not the same thing I think.
In your case, the issue is that the MDB has no knowledge of the implementation class (org.apache.xerces.dom.DeferredDocumentImpl) to be able to deserialize it.
How does the servlet creates the DeferredDocumentImpl()? If you want to keep your structure as is, the MDB must be able to access the xerces jar to deserialize the object.
I'd suggest to move all the code which creates the Document object to a commons jar that will be bundled in the EAR lib/ directory. This way both the WAR and EJB modules could access it to be able to serialize and deserialize it properly.
> Fired object messages violate classloaders
> ------------------------------------------
>
> Key: AS7-1271
> URL: https://issues.jboss.org/browse/AS7-1271
> Project: Application Server 7
> Issue Type: Bug
> Components: JMS
> Reporter: John Ament
> Assignee: Jeff Mesnil
> Fix For: 7.2.0.Alpha1
>
>
> JMS allows you to fire an object message. In this case, I have a object of type in my deployment. It fires fine. I bind a message consumer to a queue in AS7. the object message coming in results in a classloader violation:
> 22:13:35,116 ERROR [org.jboss.seam.jms.example.statuswatcher.messagedriven.DistributorMDB] (Thread-2 (group:HornetQ-client-global-threads-767046602)) org.jboss.seam.jms.example.statuswatcher.model.Status from [Module "org.hornetq:main" from local module loader @19d009b4 (roots: /apps/jboss-as-7.0.0.Final/modules)]: javax.jms.JMSException: org.jboss.seam.jms.example.statuswatcher.model.Status from [Module "org.hornetq:main" from local module loader @19d009b4 (roots: /apps/jboss-as-7.0.0.Final/modules)]
> at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330)
> at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307)
> at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:101)
> at java.lang.Class.forName0(Native Method) [:1.6.0_22]
> at java.lang.Class.forName(Class.java:247) [:1.6.0_22]
> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:603) [:1.6.0_22]
> at org.hornetq.utils.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:69) [hornetq-core-2.2.6.Final.jar:]
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574) [:1.6.0_22]
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495) [:1.6.0_22]
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) [:1.6.0_22]
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) [:1.6.0_22]
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) [:1.6.0_22]
> at org.hornetq.jms.client.HornetQObjectMessage.getObject(HornetQObjectMessage.java:158) [hornetq-jms-2.2.6.Final.jar:]
> at org.jboss.seam.jms.example.statuswatcher.messagedriven.DistributorMDB.onMessage(DistributorMDB.java:46)
> at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:91) [hornetq-jms-2.2.6.Final.jar:]
> at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:866) [hornetq-core-2.2.6.Final.jar:]
> at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:44) [hornetq-core-2.2.6.Final.jar:]
> at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:983) [hornetq-core-2.2.6.Final.jar:]
> at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) [hornetq-core-2.2.6.Final.jar:]
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_22]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_22]
> at java.lang.Thread.run(Thread.java:662) [:1.6.0_22]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list