Spring框架:java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory,尽管在classpath

时间:2016-09-08 22:01:33

标签: java spring noclassdeffounderror apache-commons-logging

我是Spring框架的新手。 我检查了与我有类似问题的以下答案:Getting java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory exception 但是,我已经尝试了该链接中提到的所有解决方案,没有工作。所以,我请求不要关闭此帖子/标记副本。

我一直在使用 JavaBrains Spring youtube讲座并运行与下面讲座4链接中提到的相同的代码

  

YoutubeLinkForCode

以下是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;如果有人能帮助我解决这个错误,我将非常感激。如果您需要更多细节,请告诉我。

0 个答案:

没有答案