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

时间:2016-09-30 08:42:01

标签: eclipse spring maven eclipse-jee runjettyrun

收到Spring / Maven项目后,我:

  • 在其上mvn eclipse:eclipse
  • 将其加载到Eclipse JEE(最新版本,称为Neon),
  • 向其添加了Dynamic Web Module方面,
  • 点击Run Jetty。

问题:虽然它存在于src/main/webapp/WEB-INF/classes/applicationContext.xml中,但它找不到自己的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在哪里,或以其他方式解决这个问题?

1 个答案:

答案 0 :(得分:1)

WEB-INF / classes 是Maven war插件在构建战争时创建的目录,它不应该是项目文件夹。 Maven war插件将为任何war项目创建它,因此它可以将编译的类和资源放在 src / main / java src / main / resources 文件夹中按照标准的Maven惯例。

类似地, WEB-INF / lib 由war插件自动创建,并且填充了war模块的依赖关系,这些依赖关系不是提供的范围。

所以把文件(以及你现在在 src / main / webapp / classes 中的任何其他文件)放在war模块的src / main / resources文件夹中,它应该按预期工作。

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