Spring 配置错误 WEB-INF/servlet-context.xml FileNotFoundException
Spring configuration error WEB-INF/servlet-context.xml FileNotFoundException
我有一个非常简单的 spring 测试应用程序。但是即使一切似乎都井井有条,我也会遇到异常。我可能会遗漏一些东西。请检查图片以查看项目结构和 web.xml 文件包含以及异常:-
efinitionStoreException:IOException 从 class 路径资源 [WEB-INF/servlet-context.xml] 解析 XML 文档;嵌套异常是 java.io.FileNotFoundException: class 路径资源 [WEB-INF/servlet-context.xml] 无法打开,因为它不存在
在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
servlet 环境中有两种资源:
- servlet 资源 - Web 应用程序根目录下的文件(通过
ServletContext
加载)
- 类路径资源 - Web 应用程序类路径上的资源(通过
ClassLoader
加载)
当 Spring 应该加载其配置时,它需要知道使用哪种机制。
- classpath:foo/bar.xml - 将加载为类路径资源
- 正在检查
WEB-INF/classes
、WEB-INF/lib/*.jar
的内容和其他共享 servlet 容器的类路径位置
- 使用 Maven 及其项目结构时,
src/main/resources
中的所有文件都将放在类路径中
- foo/bar.xml - 将加载为 servlet 资源
- 当使用 Maven 及其项目结构时,
src/main/webapp
文件夹是应用程序的根目录
TL;DR 正如我在评论中所写,在引用 XML 文件时删除 classpath:
前缀或移动 XML 文件到 src/main/resources
并删除 WEB-INF
部分。
我有一个非常简单的 spring 测试应用程序。但是即使一切似乎都井井有条,我也会遇到异常。我可能会遗漏一些东西。请检查图片以查看项目结构和 web.xml 文件包含以及异常:-
efinitionStoreException:IOException 从 class 路径资源 [WEB-INF/servlet-context.xml] 解析 XML 文档;嵌套异常是 java.io.FileNotFoundException: class 路径资源 [WEB-INF/servlet-context.xml] 无法打开,因为它不存在 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
servlet 环境中有两种资源:
- servlet 资源 - Web 应用程序根目录下的文件(通过
ServletContext
加载) - 类路径资源 - Web 应用程序类路径上的资源(通过
ClassLoader
加载)
当 Spring 应该加载其配置时,它需要知道使用哪种机制。
- classpath:foo/bar.xml - 将加载为类路径资源
- 正在检查
WEB-INF/classes
、WEB-INF/lib/*.jar
的内容和其他共享 servlet 容器的类路径位置 - 使用 Maven 及其项目结构时,
src/main/resources
中的所有文件都将放在类路径中
- 正在检查
- foo/bar.xml - 将加载为 servlet 资源
- 当使用 Maven 及其项目结构时,
src/main/webapp
文件夹是应用程序的根目录
- 当使用 Maven 及其项目结构时,
TL;DR 正如我在评论中所写,在引用 XML 文件时删除 classpath:
前缀或移动 XML 文件到 src/main/resources
并删除 WEB-INF
部分。