我在Eclipse (Spring Tools Suite变体)中加载了我的Spring/Maven项目,安装了Run Jetty Run,并单击了Run Jetty
。
问题:Jetty不能正确启动:
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
Running Jetty 9.0.0.M3
ParentLoaderPriority enabled
Enable config class:runjettyrun.webapp.RJRWebInfConfiguration
Enable config class:org.eclipse.jetty.webapp.WebXmlConfiguration
Enable config class:runjettyrun.webapp.RJRMetaInfoConfiguration
Enable config class:org.eclipse.jetty.webapp.FragmentConfiguration
Enable config class:runjettyrun.annotation.RJRAnnotationConfiguration
Enable config class:org.eclipse.jetty.webapp.JettyWebXmlConfiguration
Enable config class:org.eclipse.jetty.webapp.TagLibConfiguration
ProjectClassLoader: entry=/home/nico/src/nemaki/core/target/classes
ProjectClassLoader: entry=/home/nico/.m2/repository/javax/servlet/javax.servlet-api/3.0.1/javax.servlet-api-3.0.1.jar
[... many other JAR libraries, none being Jetty ...]
ProjectClassLoader: entry=/home/nico/.m2/repository/jp/aegif/nemakiware/nemakiware-common/2.3.10/nemakiware-common-2.3.10.jar
Excluded entry=/home/nico/src/nemaki/core/target/test-classes
2016-09-30 17:17:09.780:INFO:oejs.Server:main: jetty-9.0.0.M3
2016-09-30 17:17:12.121:WARN:oejuc.AbstractLifeCycle:main: FAILED o.e.j.w.WebAppContext@694e1548{/core,[file:/home/nico/src/nemaki/core/WebContent/],STARTING}: java.lang.NoSuchMethodError: org.eclipse.jetty.util.MultiMap.add(Ljava/lang/Object;Ljava/lang/Object;)V
java.lang.NoSuchMethodError: org.eclipse.jetty.util.MultiMap.add(Ljava/lang/Object;Ljava/lang/Object;)V
at org.eclipse.jetty.annotations.ClassInheritanceHandler.handle(ClassInheritanceHandler.java:56)
at org.eclipse.jetty.annotations.AnnotationParser$MyClassVisitor.visit(AnnotationParser.java:398)
at org.objectweb.asm.ClassReader.accept(Unknown Source)
问题:我该如何修复它?
您运行的Jetty版本不稳定。
9.0.0.M3
版本不是一个稳定的版本(那是一个实验性的里程碑版本,一个候选版本,帮助集成商开始为最终版本发展他们的代码)。
使用稳定的版本,比如9.3.12.v20160915
,你会有更好的体验。
在9.3.12.v20160915
中MultiMap
类可以在jetty-util-9.3.12.v20160915.jar
中找到
还要注意,Jetty 9是servlet 3.1,而不是3.0.1(从您的输出中可以看到)
正如Joakim所解释的,9.0.0。M3是Jetty的旧版本。
幸运的是,Run Jetty Run已经在几周前更新了。
下面是如何使用最新的Run Jetty Run:
- 从Eclipse卸载任何现有版本的Run Jetty Run
- 添加此更新站点:http://xzer.github.io/run-jetty-run-updatesite/nightly/
- 安装所需组件和可选组件9.3.6
- 你现在运行Jetty运行使用Jetty 9.3.6,这是一年前,但不会触发上述错误。请务必在
Run configurations
中选择它。