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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人