Spring ClassPathXmlApplicationContext NullPointerException

Posted

技术标签:

【中文标题】Spring ClassPathXmlApplicationContext NullPointerException【英文标题】: 【发布时间】:2014-05-16 21:25:56 【问题描述】:

尝试使用弹簧。 xml 文件位于 src 下。我已经搜索并找不到问题。好像找不到xml文件。

我收到以下错误:

    Exception in thread "main" java.lang.ExceptionInInitializerError
at org.springframework.core.env.AbstractEnvironment.suppressGetenvAccess(AbstractEnvironment.java:406)
at org.springframework.core.env.AbstractEnvironment.getSystemEnvironment(AbstractEnvironment.java:368)
at org.springframework.core.env.StandardEnvironment.customizePropertySources(StandardEnvironment.java:79)
at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:124)
at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54)
at org.springframework.context.support.AbstractApplicationContext.createEnvironment(AbstractApplicationContext.java:444)
at org.springframework.context.support.AbstractApplicationContext.getEnvironment(AbstractApplicationContext.java:283)
at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.resolvePath(AbstractRefreshableConfigApplicationContext.java:122)
at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.setConfigLocations(AbstractRefreshableConfigApplicationContext.java:80)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:137)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at org.hancock.javabrains.DrawingApp.main(DrawingApp.java:13)
Caused by: java.lang.NullPointerException
at org.springframework.core.SpringProperties.<clinit>(SpringProperties.java:58)
... 12 more

这是导致错误的行(通过将 Beans.xml 更改为错误的名称,我仍然得到相同的错误):

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

xml(Beans.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">

<bean id="helloWorld" class="org.hancock.javabrains.HelloWorld">
   <property name="message" value="Hello World!"/>
</bean>

</beans>

【问题讨论】:

显示整个堆栈跟踪 .xml 文件的名称是什么?是Beans.xml 还是beans.xml 好的,已添加。它被称为 Beans.xml 类加载器为空。您在哪个环境中运行此应用程序? 执行环境:JavaSE-1.7 【参考方案1】:

通过给出完整的文件路径试试这个

ApplicationContext ctx = new FileSystemXmlApplicationContext("Beans.xml");

【讨论】:

似乎您正在使用 pre spring 4.0 库,但在 xml 的模式位置中引用 spring-beans-4.0.xsd。尝试使用最新的 spring 库并查看。 Spring 4 没有 SpringProperties.java 文件。 所有 JARS 都说 4.0.3。如果我将其更改为 spring-beans-3.0.xsd 我会得到同样的错误。

以上是关于Spring ClassPathXmlApplicationContext NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章

你了解Spring从Spring3到Spring5的变迁吗?

Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC

学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签

Spring--Spring入门

Spring框架--Spring事务管理和Spring事务传播行为

Spring框架--Spring事务管理和Spring事务传播行为