2011-11-28 60 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的冲突。 我已经完全清除它,并开始工作。