Java Springs:为什么在包中移动XML文件会给我一个错误

时间:2014-06-17 05:35:01

标签: java spring

我是Java Springs的新手。

我创建了一个名为com.MyFirstSpringPackage的包,其中有几个Java文件,并且有一个XML文件(在包之外),它们正在调用类构造函数(连接bean),一切都很顺利。

现在我决定使用eclipse使用拖放功能在包中推送这个XML文件,然后程序开始抛出错误:

这是stacktrace:

Jun 17, 2014 11:03:12 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@15327b79: startup date [Tue Jun 17 11:03:12 IST 2014]; root of context hierarchy
Jun 17, 2014 11:03:12 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [FirstSprings.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [FirstSprings.xml]; nested exception is java.io.FileNotFoundException: class path resource [FirstSprings.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:343)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251)
    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:129)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.MyFirstSpringPackage.MainSpring.main(MainSpring.java:10)
Caused by: java.io.FileNotFoundException: class path resource [FirstSprings.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329)

出现此错误的原因是什么?为什么我不能把它移到包里面,这只是一个文件夹?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用包名称来引用xml文件,如:

String xmlFile = "com/MyFirstSpringPackage/FirstSprings.xml";

答案 1 :(得分:0)

我遇到了同样的问题,决议是通过使用正斜杠/提及spring xml文件路径,如下所示:

Resource r = new ClassPathResource("com/ioc/container/resources/springioc.xml");

工作正常。