我正在执行简单的spring依赖注入程序&得到这个异常。 我已经包含了common-logging1.1.1.jar和spring.jar文件。你能帮我一下吗?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more

当前回答

检查jar是否正确导入。我使用构建路径导入它们。但是它没有识别WAR/lib文件夹中的jar。后来,我复制了同一个jar到war/lib文件夹。现在可以正常工作了。您可以刷新/清理您的项目。

其他回答

在我的例子中,我正在eclipse中测试Tomcat应用程序,并得到了这个错误。我通过检查.classpath文件解决了这个问题,并更正了下面的条目:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

属性org.eclipse.jst.component.dependency已经丢失。

添加common -logging.jar或common -logging-1.1.jar将解决这个问题…

common -logging-1.1.1.jar或jcl-over-slf4j-1.7.6.jar al

如果使用maven,请使用下面的代码。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
</dependency>

我得到了同样的错误,而罐子是存在的。没有解决方法有效。有效的方法是从文件系统(从.m2目录)中删除jar,然后清理maven项目。

尝试完全清理应用程序的目标/部署目录,以摆脱任何陈旧的库jar。重新构建并检查common -logging.jar实际上是否被放置在正确的lib文件夹中。在为应用程序构建库时,可能不包括它。