我有一个使用Maven进行编译/构建的Spring Web项目。 建立项目没有问题。我正在尝试 在Tomcat(v6)服务器上的Eclipse (3.3.2)中运行该项目。
作为Spring项目的一部分,我在WEB-INF 目录中有一个spring-servlet.xml文件。该文件包括另一个具有数据源 配置的资源xml文件。
<import resource="classpath:${datasourceInclude}.xml"/>
现在,当使用Maven编译项目时,它将解析变量${datasourceInclude}并将其设置为适当的值,从而使spring-servlet.xml具有适当的值。
<import resource="classpath:datasourceLocal.xml"/>
但是,当我尝试在Eclipse(Tomcat)中运行项目时,出现 以下错误:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:${datasourceInclude}.xml] Offending resource: ServletContext resource [/WEB-INF/spring-servlet.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [${datasourceInclude}.xml]; nested exception is java.io.FileNotFoundException: class path resource [${datasourceInclude}.xml] cannot be opened because it does not exist at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) ... ...
基本上,当我启动Tomcat时,它会尝试从 具有$ {datasourceInclude}变量的/ src / main / webapp / WEB-INF文件夹中选择spring-servlet.xml 。
谁能告诉我如何解决此问题,以便我不必更改spring- servlet.xml并添加硬代码值代替$ {datasourceInclude}变量。
尝试 在Maven项目配置页面中添加war:inplace到执行的用于资源过滤的目标列表 。
右键单击您的项目,然后转到“ 属性”>“ Maven”>“生命周期 映射”,然后添加war:inplace到“ 目标”以调用资源更改