2011-11-28 56 views
8

我爲web應用程序使用clojure.tools.logging。很長一段時間它工作正常,與org.clojure/tools.logging "0.1.2"。我開始並停止然後爲了開發測試目的而多次重新開始clojure repl [lein repl]。突然,repl拋出以下錯誤。我更新日誌庫到org.clojure/tools.logging "0.2.3",但沒用。儘管如此,我還是得到了同樣的錯誤,它只在repl上給出了這個錯誤,但是,在應用程序運行時,日誌工作正常。我不知道問題在哪裏。使用clojure工具記錄的NoClassDefFoundError

我使用lo4j與clojure.tools.logging。

java.lang.NoClassDefFoundError: clojure/tools/logging/impl/LoggerFactory (NO_SOURCE_FILE:0) 

回答

13

添加到:在project.clj文件中的aot爲我工作。

:aot [clojure.tools.logging.impl ...] 
+0

這也適用於我。謝謝! –

+0

也爲我工作。可能應該是被接受的答案。 – Jeb

6

我會嘗試lein clean,然後lein deps,然後lein編譯,最後lein repl。如果那不起作用,我接下來嘗試手動刪除lib和classes目錄,然後運行lein deps,lein compile然後再次lein repl。

+1

我以前試過這些步驟,但沒用! –

+0

Yuck,是你的代碼直接引用clojure.tools.logging.impl.LoggerFactory嗎?如果是這樣,找到clojure日誌記錄jar並將其作爲zip存檔打開,然後查找LoggingFactory類。如果它存在,但在不同的包中,則更新您的代碼。如果它不在那裏,那麼你將不得不研究如何替換它。如果你的代碼沒有引用它,並且它不在jar文件中,那麼它可能是項目中存在錯誤,你應該向維護人員詢問它。 – Bill

+0

另外,你可以發佈你的項目clj文件的依賴關係嗎? – Bill

0

我知道這是舊的,但我只是碰到了同樣的問題,顯然〜/ .lein/profiles.clj也有某種與log4j的衝突。 我已經完全清除它,並開始工作。