spring class path resource cant be found because it doesnt exist 由于不存在,无法找到Spring类路径资源。
spring class path resource cant be found because it doesnt exist 由于不存在,无法找到Spring类路径资源。
我正在使用STS和Maven编写我的第一个春季helloworld程序,这是一个简单的IOC示例。
public class Soloapp { String solo; public Soloapp() { // TODO Auto-generated constructor stub } public String getSolo() { return solo; } public void setSolo(String solo) { this.solo = solo; } }
实现类如下:
package com.solo.spring; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Soloimp { public static void main(String[] args) { ApplicationContext ap= new ClassPathXmlApplicationContext("/WEB-INF/spring/root-context.xml"); Soloapp apa= (Soloapp) ap.getBean("solo"); System.out.println(apa.getSolo()); } }
出现了异常:
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [WEB-INF/spring/root-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring/root-context.xml] cannot be opened because it does not exist at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext. (ClassPathXmlApplicationContext.java:83) at com.solo.spring.Soloimp.main(Soloimp.java:9)
它显示找不到XML文件位置,但我已经指定了位置,我正在使用Spring Tool Suite (STS)的MVC Maven项目,并且项目结构如下图所示:[项目结构图](https://i.stack.imgur.com/gwFQC.png)。
spring class path resource cant be found because it doesnt exist 这个问题的出现原因是无法找到指定的 Spring 类路径资源。解决这个问题的方法是将 root-context.xml 文件移动到 src/main/resources 目录下,然后通过以下方式加载它:
ConfigurableApplicationContext ap = new ClassPathXmlApplicationContext("file:src/main/webapp/WEB-INF/spring/root-context.xml");
这样就可以解决找不到 Spring 类路径资源的问题了。