[rules-users] NoClassDefFoundError for BaseObjectClassFieldExtractor when running in Tomcat

Jesse Stockall jstockall at embotics.com
Wed Jul 18 08:16:38 EDT 2007


The NoClassDefFoundError exception is thrown from within drools code, so
it's obviously in the classpath. The problem appears to be with the
mechanism used by drools to load it's own code.

Jesse

On Wed, 2007-18-07 at 02:14 -0300, Fernando Meyer wrote:

> You should add the drools-core library as a required dependency.
> 
> 
> 
> Fernando Meyer http://fmeyer.org
> fmcamargo at gmail.com
> PGP: 0xD804DDFB
> 
> 
> 
> 
> 
> 
> 
> 
> On Jul 17, 2007, at 9:55 AM, Jesse Stockall wrote:
> 
> 
> 
> > Tomcat 5.5
> > Java 1.5
> > jbossrules-4.0.0.12865MR3
> > 
> > I have an instance of Drools running inside a webapp deployed on
> > Tomcat. The rules have been compiled ahead of time and are loaded in
> > with:
> > 
> > InputStream is = PolicyRuntime.class.getResourceAsStream(name);
> > DroolsObjectInputStream in = new DroolsObjectInputStream(is);
> > Package p = (Package) in.readObject();
> > 
> > When run outside Tomcat it loads fine, when run inside Tomcat I get:
> > 
> > java.lang.NoClassDefFoundError:
> > org/drools/base/extractors/BaseObjectClassFieldExtractor
> > at java.lang.ClassLoader.defineClass1(Native Method)
> > at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > at org.drools.base.ClassFieldExtractorFactory
> > $ByteArrayClassLoader.defineClass(ClassFieldExtractorFactory.java:455)
> > at
> > org.drools.base.ClassFieldExtractorFactory.getClassFieldExtractor(ClassFieldExtractorFactory.java:114)
> > at
> > org.drools.base.ClassFieldExtractor.init(ClassFieldExtractor.java:77)
> > at
> > org.drools.base.ClassFieldExtractor.<init>(ClassFieldExtractor.java:57)
> > at
> > org.drools.base.ClassFieldExtractorCache.getExtractor(ClassFieldExtractorCache.java:35)
> > at
> > org.drools.base.ClassFieldExtractor.readResolve(ClassFieldExtractor.java:72)
> > 
> > I've tried adding DroolsObjectInputStream.class.getClassLoader() ,
> > PolicyRuntime.class.getClassLoader() and
> > Thread.currentThread().getContextClassLoader() to the constructor of
> > the DroolsObjectInputStream but none had any effect.
> > 
> > Thanks
> > 
> > Jesse
> > 
> > 
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
> 
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070718/8d264c5f/attachment.html 


More information about the rules-users mailing list