繁体   English   中英

ClassPathXmlApplicationContext错误,Spring框架

[英]ClassPathXmlApplicationContext error, Spring framework

关于Springs框架,我遇到了一个问题,该问题导致服务器与数据库之间的通信不起作用。

我创建的项目是一个Spring项目,然后重构为Maven。

在代码的这一行: ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("projectName/spring.xml");

我收到此错误: Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [projectName/spring.xml]; nested exception is java.io.FileNotFoundException: class path resource [projectName/spring.xml] cannot be opened because it does not exist Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [projectName/spring.xml]; nested exception is java.io.FileNotFoundException: class path resource [projectName/spring.xml] cannot be opened because it does not exist

但是它确实存在。 我已经尝试过解决该问题的解决方案,例如改为编写ClassPathXmlApplicationContext("spring.xml") 但是这没有帮助,因为从那时起Spring会自动在src / main / resources文件夹中查找。 这对我不起作用,因为我的项目结构不允许我添加此文件夹并在其中放入XML文件。 如果尝试创建此文件夹,那么它将自动放入Java-resources文件夹中,并且Eclipse不允许我将XML放入其中。

这就是我的项目的样子: 在此处输入图片描述

我有办法声明Spring在哪里寻找这个spring.xml文件吗?

ClassPathXmlApplicationContext假定该文件位于您的类路径中(Javy描述了如何从类路径中加载资源)。

如果要从文件系统中加载配置(在执行操作时),则可能需要考虑使用FileSystemXmlApplicationContext。 使用这种机制来加载上下文,您可以像当前一样传递文件系统位置。

new ClassPathXmlApplicationContext(this.getClass().getResource("/spring.xml").getPath())

试试上面的代码

希望能有所帮助

Spring不会查看src/main/resources ,而是会查看类路径。

如果您编写projectName/spring.xml ,则需要将此文件放在bin/projectName/spring.xmlbuild/projectName/spring.xml 在哪里binbuild您的构建文件夹。

如果您构建一个jar,则此文件应位于jar!projectName/spring.xml

对于Web应用程序,此文件应位于WEB-INF/classes/projectName/spring.xml

如果在类路径中添加src/main/resources ,则此文件夹的内容将位于build文件夹中。 Maven自动在类路径中添加src/main/resources

有时您应该在IDE中重建(清理)您的项目,以在build文件夹中包含此类文件。

使用“ FileSystemXmlApplicationContext”作为

ApplicationContext  context =  new FileSystemXmlApplicationContext("spring.xml");

暂无
暂无

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

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