Spring/Maven Eclipse JEE 中的项目:applicationContext.xml 无法打开
Spring/Maven project in Eclipse JEE: applicationContext.xml cannot be opened
收到一个 Spring/Maven 项目后,我:
- 运行
mvn eclipse:eclipse
就可以了,
- 将其加载到 Eclipse JEE(最新版本,称为 Neon)中,
- 添加了
Dynamic Web Module
方面,
- 单击 运行 码头。
问题:它没有找到自己的 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)。
收到一个 Spring/Maven 项目后,我:
- 运行
mvn eclipse:eclipse
就可以了, - 将其加载到 Eclipse JEE(最新版本,称为 Neon)中,
- 添加了
Dynamic Web Module
方面, - 单击 运行 码头。
问题:它没有找到自己的 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)。