Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Drools Guvnor under Jetty?

the easiest thing to do is to create a $jetty.home/lib/weld directory and put your weld library in there, then add 'OPTIONS=weld' in your start.ini file...then all you need is the Listener in your web.xml and it ought to just work (for Servlets and Filters, Listerners will not work but they are rare anyway to configure that way)

http://www.eclipse.org/jetty/documentation/current/framework-weld.html

cheers,
jesse

--
jesse mcconnell
jesse.mcconnell@xxxxxxxxx


On Mon, Jul 8, 2013 at 5:14 PM, Evan Sayer <evan.sayer@xxxxxxxxxxxxxx> wrote:
Hi all, 

I've been trying to deploy an app called Guvnor (version 5.5.0, http://www.jboss.org/drools/drools-guvnor.html) under Jetty 8, which is built/tested to run under JBoss.  I'm running into the following stack trace on startup: 

ERROR 27-06 04:13:58,475 (JettyPost72Container.java:initialize:72) 
Unable to create JettyWeldInjector. CDI injection will not be available in Servlets, Filters or Listeners 
java.lang.IllegalArgumentException: Cannot load class for org.jboss.weld.environment.jetty.WeldDecorator 
at org.jboss.weld.environment.servlet.util.Reflections.classForName(Reflections.java:58) 
at org.jboss.weld.environment.jetty.JettyPost72Container.initialize(JettyPost72Container.java:66) 
at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:162) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:746) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:238) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1240) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:689) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:482) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:615) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403) 
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81) 
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58) 
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96) 
at org.eclipse.jetty.server.Server.doStart(Server.java:281) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1259) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1182) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.eclipse.jetty.start.Main.invokeMain(Main.java:473) 
at org.eclipse.jetty.start.Main.start(Main.java:615) 
at org.eclipse.jetty.start.Main.main(Main.java:96) 
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/servlet/ServletContextHandler$Decorator 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:792) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
at org.jboss.weld.environment.servlet.util.Reflections.classForName(Reflections.java:51) 
... 39 more 
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.ServletContextHandler$Decorator 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
... 51 more 
ERROR 27-06 04:14:02,198 (JettyPost72Container.java:initialize:72) 
Unable to create JettyWeldInjector. CDI injection will not be available in Servlets, Filters or Listeners 
java.lang.IllegalArgumentException: Cannot load class for org.jboss.weld.environment.jetty.WeldDecorator 
at org.jboss.weld.environment.servlet.util.Reflections.classForName(Reflections.java:58) 
at org.jboss.weld.environment.jetty.JettyPost72Container.initialize(JettyPost72Container.java:66) 
at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:162) 
at org.drools.guvnor.server.repository.SafeWeldListener.contextInitialized(SafeWeldListener.java:54) 
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:746) 
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:238) 
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1240) 
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:689) 
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:482) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39) 
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186) 
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494) 
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56) 
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:615) 
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403) 
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555) 
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81) 
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58) 
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96) 
at org.eclipse.jetty.server.Server.doStart(Server.java:281) 
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) 
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1259) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1182) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.eclipse.jetty.start.Main.invokeMain(Main.java:473) 
at org.eclipse.jetty.start.Main.start(Main.java:615) 
at org.eclipse.jetty.start.Main.main(Main.java:96) 
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/servlet/ServletContextHandler$Decorator 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:792) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
at org.jboss.weld.environment.servlet.util.Reflections.classForName(Reflections.java:51) 
... 40 more 
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.ServletContextHandler$Decorator 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:421) 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:383) 
... 52 more 


Here's what I've tried so far to fix this, based on Googling around and reading through other folks' attempts to deploy apps relying on WELD under Jetty: 

1) adding the following to Guvnor's web.xml: 

<listener> <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> </listener>

2) creating jetty-env.xml inside Guvnor's WEB-INF with these contents: 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" 
    "http://jetty.mortbay.org/configure.dtd">

<Configure id="webAppCtx" class="org.mortbay.jetty.webapp.WebAppContext">
  <New id="BeanManager" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>
      <Ref id="webAppCtx"/>
    </Arg>
    <Arg>BeanManager</Arg>
    <Arg>
      <New class="javax.naming.Reference">
        <Arg>javax.enterprise.inject.spi.BeanManager</Arg>
        <Arg>org.jboss.weld.resources.ManagerObjectFactory</Arg>
        <Arg/>
      </New>
    </Arg>
  </New>
</Configure>

The app does technically deploy with these additions, but I get the stack trace above and the Guvnor UI just shows a "fatal error" message.  Any hints on what I need to do? 

Thanks 

-- Evan


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jetty-users



Back to the top