我有一个使用 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} 变量。