我是Spring框架的新手。 我检查了与我有类似问题的以下答案:Getting java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory exception 但是,我已经尝试了该链接中提到的所有解决方案,没有工作。所以,我请求不要关闭此帖子/标记副本。
我一直在使用 JavaBrains Spring youtube讲座并运行与下面讲座4链接中提到的相同的代码
以下是youtube讲座中提到的主要课程:
package org.learningSpring;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DrawingApp {
Log logger = LogFactory.getLog(DrawingApp.class);
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("org/learningSpring/Spring.xml");
Triangle triangle=(Triangle) context.getBean("triangle");
triangle.draw();
((ClassPathXmlApplicationContext) context).close();
}
}
其余代码与链接中的相同:YoutubeLinkForCode
我没有使用Maven这个&手动添加所有罐子。
项目中使用的罐子:
以下是异常的堆栈跟踪:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:224)
at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:88)
at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:58)
at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:61)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:136)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at org.deen.DrawingApp.main(DrawingApp.java:14)
我调试并发现代码在AbstractApplicationContext.class中的下一行抛出异常:
public AbstractApplicationContext() {
this.logger = LogFactory.getLog(super.getClass()); //here
我确定 commons-logging-1.2 jars 中是否存在 LogFactory.clas ,以及此类是否包含 getLog 方法。< / p>
下面是我的 .classpath 文件。这包含公共jar:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Spring"/>
<classpathentry kind="lib" path="D:/Software/JAR/commons-logging-1.2-bin (2)/commons-logging-1.2/commons-logging-1.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
我在stackoverflow上读到了关于这个错误的一些答案,他们说的只是添加我已经添加的公共jar。
我花了一整天的时间来解决这个错误&amp;如果有人能帮助我解决这个错误,我将非常感激。如果您需要更多细节,请告诉我。