我的webapp在手动部署到Tomcat时工作正常。我想在构建期间执行集成测试,我想使用tomcat7-maven-plugin启动将部署webapp的嵌入式tomcat。
pom. xml
中的配置:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<path>/${name}</path>
</configuration>
<executions>
<execution>
<id>start-tomcat</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>stop-tomcat</id>
<phase>post-integration-test</phase>
<goals>
<goal>shutdown</goal>
</goals>
</execution>
</executions>
</plugin>
Tomcat正在启动,但随后出现错误:
org.springframework.beans.factory.BeanInitializationException:
Could not load properties; nested exception is java.io.FileNotFoundException:
Could not open ServletContext resource [/WEB-INF/conf/configuration.properties]
/WEB-INF/conf/configuration.properties
存在于war文件中。当war部署到独立的Tomcat实例时,应用程序正常工作。
有什么想法可以导致Spring找不到配置文件,这是在战争中存在的?
/WEB-INF/conf不在CLASSPATH中; /WEB-INF/classes是。尝试将. properties文件放在那里,看看是否做得更好。
如果这不起作用,我想知道这是否是类加载器层次结构问题。JavaEE容器具有类加载器层次结构:首先是引导程序,其次是应用程序服务器,最后是应用程序。当应用程序服务端需要时,应用程序加载器中可能有. properties文件。