[rules-users] Fresh Guvnor Install throws ClassNotFoundException

Mike Key mikey at zenbitz.com
Wed Jan 11 16:15:29 EST 2012


Closing my own loop on this one in case anyone else runs into this issue.
 As Michael mentioned this is definitely not a guvnor issue.  The issue is
I am importing JPA libraries as part of my model as my classes are
annotated for JPA.  Our JPA provider is Eclipselink and it seems the
Eclipselink JPA spec jar is delivered as an OSGi enabled jar.  This causes
the error when loading my jar into guvnor.  However after the error all of
my assets are visible and things seem to work fine...so for anyone who sees
this error by chance, you can ignore it it seems.

I did also try including the OSGi libraries into tomcats libs, this leads
down a path of needing several other libs and really adds no value except
to avoid the harmless stack trace.

Mike Key

On Tue, Jan 10, 2012 at 9:40 AM, Mike Key <mikey at zenbitz.com> wrote:

> Thanks for the response Michael.  I did get past the error by adding an
> OSGi jar to tomcat's libs.  The curious thing is that I'm loading a jar
> from a maven build (actually an assembly with all dependencies added to the
> jar).  The jar itself does not have this class, and if I do a mvn
> dependency:tree I never see OSGi mentioned in any dependencies or
> transitive dependencies of my entire source tree.
>
> At this point it may not be a question for this list, but I did try the
> same thing using JBoss AS 7 and the issue does not exist there.  Does
> anyone happen to know if perhaps how guvnor is asking tomcat to load the
> classes may be what is requiring OSGi?  Not sure how the tomcat 7 class
> loader works.
>
> Like I said I realize this is not really a Drools or Guvnor question at
> this point, but hopefully someone on the list may know?
>
> Thanks again for the response.
>
> Mike
>
> 2012/1/10 Michael Anstis <michael.anstis at gmail.com>
>
>> Guvnor doesn't use OSGi.
>>
>> The stack trace suggests the JAR you are has a dependency on OSGi:-
>>
>>
>> org.drools.guvnor.server.contenthandler.ModelContentHandler.getImportsFromJar.
>>
>> The remainder of the stack trace relates to trying to load the imported
>> class.
>>
>> 2012/1/9 Mike Key <mikey at zenbitz.com>
>>
>>> Hi all,
>>>
>>> I have installed Guvnor 5.3.0-Final on a fresh Tomcat 7.0.12.  I am able
>>> to import existing rules I have, however when I try to upload my fact model
>>> I get an error in the localhost log file:
>>>
>>> SEVERE: Servlet.service() for servlet [AssetFileServlet] in context with
>>> path [/guvnor-5.3.0.Final-tomcat-6.0] threw exception [Servlet execution
>>> threw an exception] with root cause
>>> java.lang.ClassNotFoundException: org.osgi.framework.BundleActivator
>>> >...at
>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
>>> >...at
>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
>>> >...at java.lang.Class.forName0(Native Method)
>>> >...at java.lang.Class.forName(Class.java:247)
>>> >...at
>>> org.drools.rule.MapBackedClassLoader.loadClass(MapBackedClassLoader.java:109)
>>> >...at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>> >...at java.lang.ClassLoader.defineClass1(Native Method)
>>> >...at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
>>> >...at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
>>> >...at
>>> org.drools.rule.MapBackedClassLoader.fastFindClass(MapBackedClassLoader.java:86)
>>> >...at
>>> org.drools.rule.MapBackedClassLoader.loadClass(MapBackedClassLoader.java:104)
>>> >...at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>>> >...at
>>> org.drools.guvnor.server.contenthandler.ModelContentHandler.isClassVisible(ModelContentHandler.java:183)
>>> >...at
>>> org.drools.guvnor.server.contenthandler.ModelContentHandler.getImportsFromJar(ModelContentHandler.java:148)
>>> >...at
>>> org.drools.guvnor.server.contenthandler.ModelContentHandler.onAttachmentAdded(ModelContentHandler.java:66)
>>> >...at
>>> org.drools.guvnor.server.files.FileManagerUtils.attachFileToAsset(FileManagerUtils.java:115)
>>> >...at
>>> org.drools.guvnor.server.files.FileManagerUtils.attachFile(FileManagerUtils.java:87)
>>> >...at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> >...at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> >...at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> >...at java.lang.reflect.Method.invoke(Method.java:597)
>>> >...at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
>>> >...at
>>> org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32)
>>> >...at
>>> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
>>> >...at
>>> org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
>>> >...at
>>> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>>> >...at
>>> org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
>>> >...at
>>> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>>> >...at
>>> org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
>>> >...at
>>> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>>> >...at
>>> org.jboss.seam.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:163)
>>> >...at
>>> org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>>> >...at
>>> org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
>>> >...at
>>> org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
>>> >...at
>>> org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
>>>
>>> I am attempting to upload a jar with all dependencies it uses (which
>>> includes JPA annotations and JAXB annotations).  I have verified that the
>>> jar contains all its proper dependencies.  This message seems to indicate I
>>> am missing some OSGi jar or something that I would have expected to be
>>> delivered with Guvnor.  Do I need some sort of global libraries for OSGi to
>>> run Guvnor or to use my model when it has these external dependencies in
>>> the jar?
>>>
>>> Any help on this is greatly appreciated.
>>>
>>> Cheers.
>>>
>>> Mike Key
>>>
>>> _______________________________________________
>>> 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/20120111/8daa06c4/attachment.html 


More information about the rules-users mailing list