我正在执行简单的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

当前回答

我在eclipse IDE中也有同样的问题,我的解决方案是: 右键单击My project > Properties

单击Maven并在活动Maven项目中写入:jar

最后,应用并关闭

其他回答

如果所有这些都失败了,就像我一样,尝试将commons-logging-x.y.z.jar放到Tomcat lib目录中。问题解决了!顺便说一下,我使用的是Tomcat 6。

我通常将类路径分配给一个变量,然后验证它。我写了一个小的ruby脚本,我包括在我的启动脚本,在启动java之前验证类路径。在JVM启动之前验证类路径为我节省了大量时间来解决这类问题。

只需检查common -logging.jar是否已添加到你的类库和类路径..我也有同样的问题,就是因为这个。 dhammikas -

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

如果你使用maven来管理依赖关系,在pom.xml中添加以下行:

<dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
</dependency>