jetty-maven-plugin 版本导致jetty启动失败问题

  •   使用maven来启动jetty 服务, 启动jetty报如下错误. 错误莫名其妙,相应的类EditAction.class是存在的。从堆栈信息来看应该是jetty注解扫描出现了非法参数(IllegalArgumentException),猜测是jetty-maven-plugin的版本有问题。
[INFO] jetty-9.4.7.v20170914
[INFO] Scanning elapsed time=3592ms
[WARNING Failed startup of context o.e.j.m.p.JettyWebAppContext@650c405c{/spring-struts,file:///D:/XXXXX/src/main/webapp/,UNAVAILABLE}{file:///D:/XXXXXX/src/main/webapp/}
java.lang.RuntimeException: Error scanning file EditAction.class
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:732)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:850)
    org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)
    org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:462)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:679)
    org.eclipse.jetty.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:597)
    java.lang.Thread.run (Thread.java:833)
Caused by: java.lang.IllegalArgumentException
    org.objectweb.asm.ClassReader.<init> (Unknown Source)
    org.objectweb.asm.ClassReader.<init> (Unknown Source)
    org.objectweb.asm.ClassReader.<init> (Unknown Source)
    org.eclipse.jetty.annotations.AnnotationParser.scanClass (AnnotationParser.java:979)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:725)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)
    org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:850)
    org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)
    org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:462)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:679)
    org.eclipse.jetty.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:597)
    java.lang.Thread.run (Thread.java:833)

 

  • 升级pom.xml 里面的jetty-maven-plugin到最. 从9.4.7.v20170914 升级到   11.0.15, 重新运行mvn jetty:run。依然报错,但是已经不是以前的错误,方向应该是正确的。
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>11.0.15</version>
            </plugin>
[INFO] jetty-11.0.15; built: 2023-04-11T18:37:53.775Z; git: 5bc5e562c8d05c5862505aebe5cf83a61bdbcb96; jvm 17.0.7+7
[WARNING] Failed startup of context o.e.j.m.p.MavenWebAppContext@71aaf151{Spring Struts 2,/spring-struts,[file:///D:/XXXX/XXXXX/src/main/webapp/],UNAVAILABLE}{file:///D:/XXXXX/XXXXX/src/main/webapp/}
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
     java.lang.ClassLoader.defineClass1 (Native Method)
     java.lang.ClassLoader.defineClass (ClassLoader.java:1012)
     java.security.SecureClassLoader.defineClass (SecureClassLoader.java:150)
     java.net.URLClassLoader.defineClass (URLClassLoader.java:524)
     java.net.URLClassLoader$1.run (URLClassLoader.java:427)
     java.net.URLClassLoader$1.run (URLClassLoader.java:421)
     java.security.AccessController.doPrivileged (AccessController.java:712)
     java.net.URLClassLoader.findClass (URLClassLoader.java:420)
     org.eclipse.jetty.webapp.WebAppClassLoader.foundClass (WebAppClassLoader.java:594)
     org.eclipse.jetty.webapp.WebAppClassLoader.loadAsResource (WebAppClassLoader.java:567)
     org.eclipse.jetty.webapp.WebAppClassLoader.loadClass (WebAppClassLoader.java:502)
     java.lang.ClassLoader.loadClass (ClassLoader.java:520)
     org.eclipse.jetty.util.Loader.loadClass (Loader.java:59)
     org.eclipse.jetty.servlet.BaseHolder.doStart (BaseHolder.java:97)
     org.eclipse.jetty.servlet.ListenerHolder.doStart (ListenerHolder.java:69)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.servlet.ServletContextHandler.startContext (ServletContextHandler.java:382)
     org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1305)
     org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:902)
     org.eclipse.jetty.servlet.ServletContextHandler.doStart (ServletContextHandler.java:306)
     org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:533)
     org.eclipse.jetty.maven.plugin.MavenWebAppContext.doStart (MavenWebAppContext.java:294)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
     org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:121)
     org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
     org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:121)
     org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
     org.eclipse.jetty.server.Server.start (Server.java:470)
     org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
     org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
     org.eclipse.jetty.server.Server.doStart (Server.java:415)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.maven.plugin.JettyEmbedder.doStart (JettyEmbedder.java:223)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.maven.plugin.JettyRunMojo.startJettyEmbedded (JettyRunMojo.java:97)
     org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.startJetty (AbstractWebAppMojo.java:441)
     org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.execute (AbstractWebAppMojo.java:419)
     org.eclipse.jetty.maven.plugin.JettyRunMojo.execute (JettyRunMojo.java:85)
     org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
     org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
     org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
     org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
     org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
     org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
     org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
     org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
     org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
     org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
     org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
     org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
     org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
     org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
     org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
     org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
     jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
     jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
     jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
     java.lang.reflect.Method.invoke (Method.java:568)
     org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
     org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
     org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
     org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
     org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
     org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
     org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
     org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
     org.eclipse.jetty.webapp.WebAppClassLoader.loadClass (WebAppClassLoader.java:511)
     java.lang.ClassLoader.loadClass (ClassLoader.java:520)
     java.lang.ClassLoader.defineClass1 (Native Method)
     java.lang.ClassLoader.defineClass (ClassLoader.java:1012)
     java.security.SecureClassLoader.defineClass (SecureClassLoader.java:150)
     java.net.URLClassLoader.defineClass (URLClassLoader.java:524)
     java.net.URLClassLoader$1.run (URLClassLoader.java:427)
     java.net.URLClassLoader$1.run (URLClassLoader.java:421)
     java.security.AccessController.doPrivileged (AccessController.java:712)
     java.net.URLClassLoader.findClass (URLClassLoader.java:420)
     org.eclipse.jetty.webapp.WebAppClassLoader.foundClass (WebAppClassLoader.java:594)
     org.eclipse.jetty.webapp.WebAppClassLoader.loadAsResource (WebAppClassLoader.java:567)
     org.eclipse.jetty.webapp.WebAppClassLoader.loadClass (WebAppClassLoader.java:502)
     java.lang.ClassLoader.loadClass (ClassLoader.java:520)
     org.eclipse.jetty.util.Loader.loadClass (Loader.java:59)
     org.eclipse.jetty.servlet.BaseHolder.doStart (BaseHolder.java:97)
     org.eclipse.jetty.servlet.ListenerHolder.doStart (ListenerHolder.java:69)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.servlet.ServletContextHandler.startContext (ServletContextHandler.java:382)
     org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1305)
     org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:902)
     org.eclipse.jetty.servlet.ServletContextHandler.doStart (ServletContextHandler.java:306)
     org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:533)
     org.eclipse.jetty.maven.plugin.MavenWebAppContext.doStart (MavenWebAppContext.java:294)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
     org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:121)
     org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
     org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:121)
     org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:171)
     org.eclipse.jetty.server.Server.start (Server.java:470)
     org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:114)
     org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:89)
     org.eclipse.jetty.server.Server.doStart (Server.java:415)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.maven.plugin.JettyEmbedder.doStart (JettyEmbedder.java:223)
     org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:93)
     org.eclipse.jetty.maven.plugin.JettyRunMojo.startJettyEmbedded (JettyRunMojo.java:97)
     org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.startJetty (AbstractWebAppMojo.java:441)
     org.eclipse.jetty.maven.plugin.AbstractWebAppMojo.execute (AbstractWebAppMojo.java:419)
     org.eclipse.jetty.maven.plugin.JettyRunMojo.execute (JettyRunMojo.java:85)
     org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
     org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
     org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
     org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
     org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
     org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
     org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
     org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
     org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
     org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
     org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
     org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
     org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
     org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
     org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
     org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
     jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
     jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
     jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
     java.lang.reflect.Method.invoke (Method.java:568)
     org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
     org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
     org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
     org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

 

  • 修改pom.xml 里面的jetty-maven-plugin到最. 从11.0.15 升级到   10.0.0, 重新运行mvn jetty:run。终于成功。
  • 总结:还是需要根据错误信息来分析定位问题。具体的原因分析有时间再来调查

 

 

[INFO] jetty-9.4.7.v20170914[INFO] Scanning elapsed time=3592ms[WARNING Failed startup of context o.e.j.m.p.JettyWebAppContext@650c405c{/spring-struts,file:///D:/daily-tasks/github/struts-examples/spring-struts/src/main/webapp/,UNAVAILABLE}{file:///D:/daily-tasks/github/struts-examples/spring-struts/src/main/webapp/}java.lang.RuntimeException: Error scanning file EditAction.class    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:732)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:850)    org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)    org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:462)    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:679)    org.eclipse.jetty.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:597)    java.lang.Thread.run (Thread.java:833)Caused by: java.lang.IllegalArgumentException    org.objectweb.asm.ClassReader.<init> (Unknown Source)    org.objectweb.asm.ClassReader.<init> (Unknown Source)    org.objectweb.asm.ClassReader.<init> (Unknown Source)    org.eclipse.jetty.annotations.AnnotationParser.scanClass (AnnotationParser.java:979)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:725)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parseDir (AnnotationParser.java:709)    org.eclipse.jetty.annotations.AnnotationParser.parse (AnnotationParser.java:850)    org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call (AnnotationConfiguration.java:159)    org.eclipse.jetty.annotations.AnnotationConfiguration$1.run (AnnotationConfiguration.java:462)    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:679)    org.eclipse.jetty.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:597)    java.lang.Thread.run (Thread.java:833)

posted on 2023-05-10 15:57  pmh905001  阅读(436)  评论(0编辑  收藏  举报

导航