繁体   English   中英

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

[英]Java Springs: Why does moving XML file inside the package gives me an error

我是Java Springs的新手。

我创建了一个名为com.MyFirstSpringPackage的程序包,其中有几个Java文件,还有一个XML文件(在程序包外部),它们正在调用类构造函数(为bean接线),并且一切正常。

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

这是堆栈跟踪:

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)

此错误的原因是什么? 为什么我不能将其移动到只是一个文件夹的包装内?

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

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

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

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

工作正常。

暂无
暂无

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

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