繁体   English   中英

Spring Error-线程“ main”中的异常java.lang.ExceptionInInitializerError

[英]Spring Error- Exception in thread “main” java.lang.ExceptionInInitializerError

作为Java应用程序运行时,在线程“ main” java.lang.ExceptionInInitializerError中出现错误Exception

这是针对Spring的,我在其中创建了一个SpringConfig.xml文件,该文件使用ApplicationContext接口从TestSpringProject类调用。 我没有使用过和依赖工具..只是导入了所需的弹簧罐

TestSpringProject.java:

public class TestSpringProject {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        ApplicationContext context = new ClassPathXmlApplicationContext("SpringConfig.xml");

        Restaurant res = (Restaurant) context.getBean("restaurantBean");
        res.greetCustomer();

    }

}

SpringConfig.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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="restaurantBean" class="com.packages.Restaurant.java">
    </bean>
</beans>

Restaurant.java:

public class Restaurant {

    public void greetCustomer() {
        System.out.println("Welcome Customer");
    }
}

预期结果:欢迎客户

实际结果:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:160)
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:230)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:92)
    at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:62)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:141)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
    at com.packages.TestSpringProject.main(TestSpringProject.java:11)
Caused by: java.lang.NullPointerException
    at org.apache.commons.logging.LogFactory.<clinit>(LogFactory.java:71)

我认为问题的根本原因在于您自己说的一句话:

我没有使用过和依赖工具..只是导入了所需的弹簧罐

Spring本身依赖第三方库,例如commons-logging。 通常,依赖项管理工具(从这个角度来看像maven)具有传递依赖项的概念,这意味着,如果您的项目依赖于spring并且spring依赖于commons日志记录,那么您实际上将依赖于common日志记录,这意味着您将无法即使您的代码不依赖于commons-logging本身也可以运行该项目。

因此,您至少应导入此公用日志记录罐,但是,我确实建议您使用一些可以解决这些传递性依赖关系的构建工具来管理项目,因为即使您要解决此问题,也会有类似的问题。

您的代码工作正常,依赖关系(jar)可能存在一些问题。 您可以尝试从此处下载最新版本-https: //repo.spring.io/release/org/springframework/spring/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM