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



我是Java spring的新手。

我创建了一个名为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");

没问题。

相关内容

最新更新