Spring/Maven Eclipse JEE 中的项目:applicationContext.xml 无法打开

Spring/Maven project in Eclipse JEE: applicationContext.xml cannot be opened

收到一个 Spring/Maven 项目后,我:

问题:它没有找到自己的 applicationContext.xml,即使它存在于 src/main/webapp/WEB-INF/classes/applicationContext.xml

16:58:58.183 [main] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist

问题:如何告诉 Eclipse JEE applicationContext.xml 在哪里,或者如何解决这个问题?

WEB-INF/classes是Mavenwar插件在构建war时创建的目录,应该不是项目文件夹. Maven war 插件将为任何 war 项目创建它,因此它可以将已编译的 类 和存在于您的 src/main/java[=25= 中的资源放在那里] 和 src/main/resources 文件夹,按照标准 Maven 约定。

同样,WEB-INF/lib 由 war 插件自动创建,并填充了 war 模块的依赖项,这些依赖项不是按提供的范围划分。

因此,将文件(以及您现在在 src/main/webapp/classes 中拥有的任何其他文件)放入 war 模块的 src/main/resources 文件夹中它应该按预期工作。

旁注:这仅适用于 lib 子目录;在你的项目中有一个 WEB-INF 文件夹是完全有效的,这样你就可以添加需要进入 WEB-INF 的文件(比如:web.xml)。