<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.14.1">
</HEAD>
<BODY>
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.<BR>
<BR>
Jesse<BR>
<BR>
On Wed, 2007-18-07 at 02:14 -0300, Fernando Meyer wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">You should add the drools-core library as a required dependency.</FONT>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">Fernando Meyer <A HREF="http://fmeyer.org">http://fmeyer.org</A></FONT>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000"><A HREF="mailto:fmcamargo@gmail.com">fmcamargo@gmail.com</A></FONT>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">PGP: 0xD804DDFB</FONT>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
<BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
<BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">On Jul 17, 2007, at 9:55 AM, Jesse Stockall wrote:</FONT>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">Tomcat 5.5</FONT><BR>
<FONT COLOR="#000000">Java 1.5</FONT><BR>
<FONT COLOR="#000000">jbossrules-4.0.0.12865MR3</FONT><BR>
<BR>
<FONT COLOR="#000000">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:</FONT><BR>
<BR>
<FONT COLOR="#000000">InputStream is = PolicyRuntime.class.getResourceAsStream(name);</FONT><BR>
<FONT COLOR="#000000">DroolsObjectInputStream in = new DroolsObjectInputStream(is);</FONT><BR>
<FONT COLOR="#000000">Package p = (Package) in.readObject();</FONT><BR>
<BR>
<FONT COLOR="#000000">When run outside Tomcat it loads fine, when run inside Tomcat I get:</FONT><BR>
<BR>
<FONT COLOR="#000000">java.lang.NoClassDefFoundError: org/drools/base/extractors/BaseObjectClassFieldExtractor</FONT><BR>
<FONT COLOR="#000000">at java.lang.ClassLoader.defineClass1(Native Method)</FONT><BR>
<FONT COLOR="#000000">at java.lang.ClassLoader.defineClass(ClassLoader.java:620)</FONT><BR>
<FONT COLOR="#000000">at org.drools.base.ClassFieldExtractorFactory$ByteArrayClassLoader.defineClass(ClassFieldExtractorFactory.java:455)</FONT><BR>
<FONT COLOR="#000000">at org.drools.base.ClassFieldExtractorFactory.getClassFieldExtractor(ClassFieldExtractorFactory.java:114)</FONT><BR>
<FONT COLOR="#000000">at org.drools.base.ClassFieldExtractor.init(ClassFieldExtractor.java:77)</FONT><BR>
<FONT COLOR="#000000">at org.drools.base.ClassFieldExtractor.<init>(ClassFieldExtractor.java:57)</FONT><BR>
<FONT COLOR="#000000">at org.drools.base.ClassFieldExtractorCache.getExtractor(ClassFieldExtractorCache.java:35)</FONT><BR>
<FONT COLOR="#000000">at org.drools.base.ClassFieldExtractor.readResolve(ClassFieldExtractor.java:72)</FONT><BR>
<BR>
<FONT COLOR="#000000">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.</FONT><BR>
<BR>
<FONT COLOR="#000000">Thanks</FONT><BR>
<BR>
<FONT COLOR="#000000">Jesse</FONT><BR>
<BR>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">_______________________________________________</FONT>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000">rules-users mailing list</FONT>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000"><A HREF="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</A></FONT>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BLOCKQUOTE TYPE=CITE>
<FONT COLOR="#000000"><A HREF="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</A></FONT>
</BLOCKQUOTE>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<BR>
<BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">_______________________________________________</FONT>
<FONT COLOR="#000000">rules-users mailing list</FONT>
<FONT COLOR="#000000"><A HREF="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</A></FONT>
<FONT COLOR="#000000"><A HREF="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</A></FONT>
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>