NoSuchMethodError: org.eclipse.jetty.util.MultiMap.add

Я загрузил свой проект Spring/Maven в Eclipse (вариант Spring Tools Suite), установил Run Jetty Run и щелкнул Run 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)

ВОПРОС: Как я могу это исправить?

2 ответа

Как пояснил Йоаким, 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.
  • Теперь у вас есть Run Jetty Run с использованием Jetty 9.3.6, которому уже исполнился год, но она не вызывает вышеуказанную ошибку. Не забудьте выбрать его в Run configurations,

Вы используете нестабильную версию 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 (видно из вашего вывода)

Другие вопросы по тегам