0

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

  • mvn eclipse:eclipse过去,
  • 将其加载到 Eclipse JEE(最新版本,称为 Neon)中,
  • 为它添加了Dynamic Web Module刻面,
  • 点击 Run Jetty 就可以了。

问题:它没有找到自己的 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 在哪里,或者解决这个问题?

4

1 回答 1

1

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

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

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

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

于 2016-09-30T08:54:04.723 回答