【问题标题】:Spring HelloWorld : Exception in thread "main" java.lang.NoClassDefFoundErrorSpring HelloWorld:线程“主”java.lang.NoClassDefFoundError 中的异常
【发布时间】:2017-04-20 15:00:28
【问题描述】:

**编辑:我已经复制粘贴了另一个**

我只是想实现 Spring HelloWorld 示例。 我的 Spring 版本是 4.5 ,jdk 5.1 我试图在没有 maven 的情况下做到这一点,只是在 eclipse 中导入了 spring JAR

  1. 我的主班(Student.java)

    package com.javatpoint;  
    
    public class Student {  
    private String name;  
    
    public String getName() {  
        return name;  
    }  
    
    public void setName(String name) {  
        this.name = name;  
    }  
    
    public void displayInfo(){  
        System.out.println("Hello: "+name);  
    }  
    }
    
  2. 我的 spring.xml

      <?xml version="1.0" encoding="UTF-8"?>  
      <beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
               http://www.springframework.org/schema/beans/spring-beans-
    3.0.xsd">  
    
     <bean id="studentbean" class="com.javatpoint.Student">  
     <property name="name" value="Vimal Jaiswal"></property>  
    


3.Test.java

         package com.javatpoint;  

import org.springframework.beans.factory.BeanFactory;  
import org.springframework.beans.factory.xml.XmlBeanFactory;  
import org.springframework.core.io.ClassPathResource;  
import org.springframework.core.io.Resource;  

import com.javatpoint.Student;

public class Test {  
public static void main(String[] args) {  
    Resource resource=new ClassPathResource("applicationContext.xml");  
    BeanFactory factory=new XmlBeanFactory(resource);  

    Student student=(Student)factory.getBean("studentbean");  
    student.displayInfo();  
}  
}  

仍然在说“线程“主”java.lang.NoClassDefFoundError 中的异常”


这是我缺少的东西吗,我需要与 maven 集成吗?请建议

这是我的错误堆栈

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.<init>(DefaultSingletonBeanRegistry.java:83)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.<init>(FactoryBeanRegistrySupport.java:43)
    at org.springframework.beans.factory.support.AbstractBeanFactory.<init>(AbstractBeanFactory.java:175)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.<init>(AbstractAutowireCapableBeanFactory.java:160)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.<init>(AbstractAutowireCapableBeanFactory.java:171)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.<init>(DefaultListableBeanFactory.java:193)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:78)
    at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:67)
    at com.javatpoint.Test.main(Test.java:13)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    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)
    ... 9 more

【问题讨论】:

  • 您好,没有找到哪个类?我认为这可能是一个重复的 jar 错误...
  • 你应该在 class="testClass" 而不是 testClass 中提及完整的类名
  • 您确定版本吗?为什么是 XML 而不是 Java 配置?

标签: java spring javabeans


【解决方案1】:

我可以看到你从教程中复制了一些代码。

但是你没有正确复制。

您已经在 spring.xml 中定义了您的 bean,如下所示,

<bean id="helloBean" class="testClass">
    <property name="name" value="Mkyong" />
</bean>

但是没有名称为 testClass 且变量为 name

的类

我想,现在你可以做剩下的事情了

【讨论】:

  • 你的 getter 没有返回任何东西。
  • spring 需要 apache.commons.logging,查看stackoverflow.com/a/14055668/4090550
  • 当你使用 maven 依赖时,它会自动下载所有相关的依赖,但如果你手动添加依赖,你必须将所有需要的 jar 添加到你的类路径中
【解决方案2】:

此异常主要发生在您未导入commons-logging-1.1.3.jar 时。转到构建路径 > 配置构建路径 > 库 > 添加外部 JAR。选择commons-logging-1.1.3.jar并申请。

【讨论】:

  • 这就是解决 OP 问题的方法,我不明白你为什么投了反对票!我当前的问题是:如果 spring 需要 apache commons logging,为什么它不是依赖项(在 pom 中)?
猜你喜欢
  • 2012-12-17
  • 1970-01-01
  • 2011-09-14
  • 2014-11-06
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多