2014-07-17 64 views
7

當我運行它變得異常應用如何解決ClassNotFoundException:org.apache.commons.logging.LogFactory?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
    at org.hibernate.dialect.Dialect.<clinit>(Dialect.java:58) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 1 more 

我已經把所有的jar文件lib文件夾中。 我不知道如何解決這個問題,我的錯誤在哪裏。

+3

您還添加了commons-logging.jar? – Jens

+3

這與Hibernate無關,您的類路徑中沒有Log4J,Hibernate希望Log4J可用。 – JamesENL

+0

考慮使用像Maven這樣的框架,它會自動爲您下載所有必需的依賴關係。 – Magnilex

回答

0

包括在你的lib文件夾休眠jar文件(尤其是需要的jar)

antlr-2.7.7.jar 
commons-collections-3.2.1.jar 
dom4j-1.6.1.jar 
javassist-3.12.1.GA.jar 
hibernate-core-4.0.1.Final.jar 
hibernate-commons-annotations-4.0.1.Final.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 
jboss-logging-3.1.0.CR2.jar 
jboss-transaction-api_1.1_spec-1.0.0.Final.jar 
11

在你的POM文件添加此:

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.2</version> 
</dependency> 
+0

對我來說' 1.1.1'而不是 – nest

0

我有一個類似的問題:在我的項目的解決方案是添加以下罐org.apache.commons:

commons-logging-1.2 commons-dbcp2-2.1.1 公地pool2-2.4.2

+0

downvoting沒有解釋。可怕的態度 –

0

對我來說,問題就解決了下載後&加入罐子 「共享記錄-1.2.jar」

2

它加入這個jar文件

commons-後,對我的作品logging-1.2.jar

您可以從here下載它。

+0

優秀。爲我工作,但我會建議直接從maven repo下載jar ... https://mvnrepository.com/artifact/commons-logging/commons-logging/1.2。或者如果你能夠使用Gradle/Maven,那麼這是自動的。 – Antinous