簡體   English   中英

運行Jetty時,為什么我一直在LocationAwareLogger上獲取NoSuchMethodError?

[英]Why do I keep getting NoSuchMethodError on LocationAwareLogger when running Jetty?

我正在嘗試將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-apislf4j-api
  • 看看Jetty 7的一些來源,尤其是pom.xml,發現它依賴於slf4j 1.6.1
  • org.slf4j.spi.LocationAwareLogger 這個類似的問題,並在嘗試打印org.slf4j.spi.LocationAwareLoggerorg.slf4j.Marker時得到null

我希望有人能夠對這個問題提供新的見解。 謝謝。

我打賭你在sl4j罐子之間遇到兼容性問題 嘗試檢查mvn dependency:tree最終工件的mvn dependency:tree輸出。 也許你有兩個不同版本的sl4j jar,你不能先預測哪些負載。 嘗試均衡所有sl4j版本。


OP:請參閱我如何解決這個問題文檔

有關madhead 答案的信息非常有用,但我將記錄我為其他人(將會遇到同樣問題)所做的事情的細節。

正如所提到的答案所示,這是slf4j罐子的一個問題。 為了驗證我做了以下事情:

  1. 定義對依賴於slf4j所有依賴項的排除。
  2. 請遵循此建議中的選項2。
    • 我編寫了一個單元測試,它只是sysout的一個我選擇的字符串,並在該行定義一個斷點。
    • 然后我將測試調試為JUnit測試,並打開Display視圖
    • 我需要重新運行它,因為首先由於某種原因禁用Display Result of Evaluating Selected Text
    • 我發現運行時仍然指的是仍然被添加到類路徑中的1.5.8版本的slf4j ,無論我是否為它指定了排除。
  3. 我正在研究的項目取決於我正在研究的另一個項目(它是一個多Maven項目項目),它指定了對slf4j-jdk14 1.5.8依賴,所以我只是將它更新為1.6.1
    • 我必須在slf4j-jdk14 1.6.1下指定排除slf4j-api ,因為它指的是版本1.5.8,並且直接依賴於slf4j-api 1.6.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM