自動テストに Jetty サーバーを埋め込もうとしているので、プロジェクトに次の依存関係を追加しました。
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>7.6.13.v20130916</version>
<scope>test</scope>
</dependency>
Web アプリは Java 6、サーブレット 2.5 を使用するため、Jetty 7 を使用しています。
ただし、組み込みの Jetty サーバーを起動しようとすると、次のようになります。
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.eclipse.jetty.util.log.JettyAwareLogger.log(JettyAwareLogger.java:607)
at org.eclipse.jetty.util.log.JettyAwareLogger.warn(JettyAwareLogger.java:431)
at org.eclipse.jetty.util.log.Slf4jLog.warn(Slf4jLog.java:69)
at org.eclipse.jetty.util.component.AbstractLifeCycle.setFailed(AbstractLifeCycle.java:204)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:74)
何が問題なのかを理解しようとしていますが、これまでに行った手順のいずれも問題に対処していません。これまでに行ったことのリストは次のとおりです。
- 推移的な依存関係を追跡して、互換性のないバージョンの
slf4j-api
slf4j-api
(1.5.11、1.6.1、1.6.4、1.7.5)の異なるバージョンを試してください。- Jetty 7 のいくつかのソース、特に pom.xml を調べたところ、slf4j 1.6.1 への依存関係があることがわかりました。
- この同様の質問を調べて
null
、印刷しようとしたときに取得しorg.slf4j.spi.LocationAwareLogger
、org.slf4j.Marker
誰かがこの問題について新たな洞察を提供してくれることを願っています。ありがとう。