如何修复ClassNotFoundException: org.apache.commons.logging.LogFactory?

8

当我运行应用程序时,会出现异常。

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
考虑使用像Maven这样的框架,它会自动为您下载所有必要的依赖项。 - Magnilex
你应该将commons-logging.jar放在lib文件夹中。 - user1516873
5个回答

11
在你的pom文件中添加以下内容:
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

对我来说,使用 <version>1.1.1</version> 可以正常工作。 - nest

1

在添加了这个JAR文件之后,它对我有效。

commons-logging-1.2.jar

你可以从这里下载它。

太好了,这对我有用,但我建议直接从maven仓库下载jar... https://mvnrepository.com/artifact/commons-logging/commons-logging/1.2。或者如果您能使用Gradle/Maven,那么这将是自动的。 - user1300214

0

将 Hibernate jar 文件(尤其是必需的 jar 文件)包含在您的 lib 文件夹中

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

0

对我来说,问题解决了,只需要下载并添加“commons-logging-1.2.jar”这个jar包。


0

我有一个类似的问题:在我的项目中,解决方案是添加以下 org.apache.commons 的 jars:

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


没有解释地进行负评,态度很差。 - Mehdi LAMRANI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接