Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-2635

Weld core doesn't properly detect Jetty server for GWT 2.8/2.9 test environment

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 3.1.5.Final
    • Fix Version/s: 3.1.6.Final, 3.1.5.SP1
    • Component/s: None
    • Labels:
      None
    • Steps to Reproduce:
      Hide

      Run

      git clone https://github.com/errai/errai.git
      cd errai
      git checkout -b mareknovotny-upgrade-for-eap73 master
      git pull https://github.com/mareknovotny/errai.git upgrade-for-eap73
      mvn install -DskipTests -Pintegration-test -pl errai-cdi/errai-cdi-server -am -DfailIfNoTests=false -Dit.test=AsyncCDIBeanManagerTest#testBeanManagerLookupForExtendedInterfaceType
      
      Show
      Run git clone https: //github.com/errai/errai.git cd errai git checkout -b mareknovotny-upgrade- for -eap73 master git pull https: //github.com/mareknovotny/errai.git upgrade- for -eap73 mvn install -DskipTests -Pintegration-test -pl errai-cdi/errai-cdi-server -am -DfailIfNoTests= false -Dit.test=AsyncCDIBeanManagerTest#testBeanManagerLookupForExtendedInterfaceType

      Description

      This issue is similar to WELD-1615, but for 3.1.x

      Running GWTTestCase junit testsuite (gwt 2.8.2) with Jetty 9.2.14.v20151106 will end with the error below, note that GWT 2.9.0 has the same embedded Jetty version for testing so it is the same.

       Jetty used `org.mortbay.jetty` package for verstions older than 9.x, from 9.x+ uses `org.eclipse.jetty` package and that error below is just pointing to mortbay instead of eclipse Jetty:

      INFO [servletJetty] WELD-ENV-001203: GWTHostedMode detected, JSR-299 injection will be available in Servlets and Filters. Injection into Listeners is not supported.
      WARN [AbstractLifeCycle] FAILED org.eclipse.jetty.annotations.ServletContainerInitializersStarter@61a91912: java.lang.NoClassDefFoundError: org/mortbay/jetty/servlet/ServletHandler
      java.lang.NoClassDefFoundError: org/mortbay/jetty/servlet/ServletHandler
      	at java.lang.ClassLoader.defineClass1(Native Method)
      	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
      	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
      	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
      	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
      	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
      	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
      	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
      	at org.jboss.weld.environment.gwtdev.GwtDevHostedModeContainer.getWeldServletHandlerClass(GwtDevHostedModeContainer.java:46)
      	at org.jboss.weld.environment.gwtdev.GwtDevHostedModeContainer.initialize(GwtDevHostedModeContainer.java:55)
      	at org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize(WeldServletLifecycle.java:214)
      	at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:62)
      	at org.eclipse.jetty.plus.annotation.ContainerInitializer.callStartup(ContainerInitializer.java:140)
      	at org.eclipse.jetty.annotations.ServletContainerInitializersStarter.doStart(ServletContainerInitializersStarter.java:65)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:274)
      	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
      	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
      	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
      	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
      	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
      	at org.eclipse.jetty.server.handler.RequestLogHandler.doStart(RequestLogHandler.java:140)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
      	at org.eclipse.jetty.server.Server.start(Server.java:387)
      	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
      	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
      	at org.eclipse.jetty.server.Server.doStart(Server.java:354)
      	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:760)
      	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
      	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:923)
      	at com.google.gwt.junit.JUnitShell.getUnitTestShell(JUnitShell.java:708)
      	at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:682)
      	at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:421)
      	at junit.framework.TestCase.runBare(TestCase.java:141)
      	at junit.framework.TestResult$1.protect(TestResult.java:122)
      	at junit.framework.TestResult.runProtected(TestResult.java:142)
      	at junit.framework.TestResult.run(TestResult.java:125)
      	at junit.framework.TestCase.run(TestCase.java:129)
      	at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:247)
      	at junit.framework.TestSuite.runTest(TestSuite.java:252)
      	at junit.framework.TestSuite.run(TestSuite.java:247)
      	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:383)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:344)
      	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:417)
      Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.servlet.ServletHandler
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
      	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
      	... 59 more
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  manaRH Marek Novotny
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: