#eclipse #jetty #spring-tool-suite #runjettyrun
#затмение #jetty #spring-набор инструментов #runjettyrun
Вопрос:
Я загрузил свой проект Spring / Maven в Eclipse (вариант Spring Tools Suite), установил 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)
ВОПРОС: Как я могу это исправить?
Ответ №1:
Вы используете нестабильную версию Jetty.
Версия не является стабильной версией (это экспериментальный релиз, кандидат на выпуск, который поможет интеграторам начать разрабатывать свой код для возможного выпуска). 9.0.0.M3
Используйте стабильную версию, например, 9.3.12.v20160915
и у вас будет гораздо лучший опыт.
В 9.3.12.v20160915
MultiMap
классе можно найти в jetty-util-9.3.12.v20160915.jar
Также обратите внимание, что Jetty 9 — это сервлет 3.1, а не 3.0.1 (видно из вашего вывода)
Ответ №2:
Как объяснил Joakim, 9.0.0.M3 — это старая версия Jetty.
К счастью, запуск Jetty Run был обновлен несколько недель назад.
Вот как использовать последний запуск Jetty Run:
- Удалите из Eclipse любую существующую версию Run Jetty Run
- Добавьте этот сайт обновления: http://xzer.github.io/run-jetty-run-updatesite/nightly /
- Установите из него требуемый компонент и дополнительный компонент 9.3.6
- Теперь вы запустили Jetty Run с использованием Jetty 9.3.6, которому уже год, но он не вызывает указанную выше ошибку. Обязательно выберите его
Run configurations
.