[jboss-dev-forums] [JBoss AS 7 Development] - issues with replicated infinispan cache and classloading - ClassNotFoundException deserializing packet

Radai Rosenblatt do-not-reply at jboss.com
Tue Jun 25 04:09:07 EDT 2013


Radai Rosenblatt [https://community.jboss.org/people/hatchetman82] created the discussion

"issues with replicated infinispan cache and classloading - ClassNotFoundException deserializing packet"

To view the discussion, visit: https://community.jboss.org/message/824702#824702

--------------------------------------------------------------
Hi.

I have an *.ear deployed on 2 clustered AS7 (7.1.3) machines, inside this ear is an ejb jar that uses drools (drools jars are packed in the ear's /lib directory).
this application uses a replicated infinispan cache, defined with module="deployment.my.ear" which, according to the docs, means the cache uses the deployment's classpath.

the class that i place as a value into the cache is externalizable, and serializes/deserializes drools classes in its writeExternal()/readExternal() methods.

when i put something in the cache from node A, i get the following exception on the receiving node B (also mirrored in A's log):

Caused by: java.lang.ClassNotFoundException: org.drools.rule.DialectRuntimeRegistry from [Module "org.jboss.as.clustering.common:main" from local module loader @3c941140 (roots: C:\[install dir]\modules)]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_25]
    at java.lang.Class.forName(Class.java:270) [rt.jar:1.7.0_25]
    at org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:88) [drools-core.jar:5.1.1]
    at org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:100) [drools-core.jar:5.1.1]
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610) [rt.jar:1.7.0_25]
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515) [rt.jar:1.7.0_25]
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) [rt.jar:1.7.0_25]
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) [rt.jar:1.7.0_25]
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) [rt.jar:1.7.0_25]
    at org.drools.rule.Package.readExternal(Package.java:197) [drools-core.jar:5.1.1]
    at org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:115) [drools-core.jar:5.1.1]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1259) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37) [jboss-marshalling-1.3.15.GA.jar:1.3.15.GA]
    at org.infinispan.marshall.exts.ArrayListExternalizer.readObject(ArrayListExternalizer.java:57) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.exts.ArrayListExternalizer.readObject(ArrayListExternalizer.java:45) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:395) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:224) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.BlockUnmarshaller.readObject(BlockUnmarshaller.java:153) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.BlockUnmarshaller.readObject(BlockUnmarshaller.java:139) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
*at com.my.Class.readExternal(Class.java:321) [my-ejb.jar:version]*
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1259) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37) [jboss-marshalling-1.3.15.GA.jar:1.3.15.GA]
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readParameters(ReplicableCommandExternalizer.java:119) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:107) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:58) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:395) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:224) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37) [jboss-marshalling-1.3.15.GA.jar:1.3.15.GA]
    at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readParameters(ReplicableCommandExternalizer.java:119) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:162) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.readObject(CacheRpcCommandExternalizer.java:66) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.jboss.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:395) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:224) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209) [jboss-marshalling-river-1.3.15.GA.jar:1.3.15.GA]
    at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37) [jboss-marshalling-1.3.15.GA.jar:1.3.15.GA]
    at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:163) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:114) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:104) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectFromBuffer(MarshallerAdapter.java:50) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:200) [infinispan-core-5.1.7.Final.jar:5.1.7.Final]
    ... 30 more

whats even stranger here is that the above exception shows that infinispan has successfully located my class (packaged inside the ejb jar inside the ear) yet completely failed to find the drools classes (packaged in drools *.jars inside the ear's /lib)

what am i doing wrong?
--------------------------------------------------------------

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

Start a new discussion in JBoss AS 7 Development at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20130625/269030b1/attachment-0001.html 


More information about the jboss-dev-forums mailing list