【发布时间】:2013-10-04 23:23:01
【问题描述】:
我正在尝试将 Jetty 服务器嵌入到我的自动化测试中,因此我在我的项目中添加了以下依赖项:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>7.6.13.v20130916</version>
<scope>test</scope>
</dependency>
我正在使用 Jetty 7,因为 Web 应用程序使用 Java 6、Servlet 2.5。
但是,当我尝试启动嵌入式 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 的依赖项
- 查看this similar question 并在尝试打印
org.slf4j.spi.LocationAwareLogger和org.slf4j.Marker时得到null
我希望有人可以对这个问题提供新的见解。谢谢。
【问题讨论】:
-
您是否尝试在 jetty-servlet 依赖项上为 slf4j 指定
? -
jetty-servlet 似乎没有对 slf4j 的传递依赖,这看起来很奇怪。