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@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@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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users