手动部署到Tomcat时,我的webapp正常工作。我想在构建期间执行集成测试,我想使用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]
war文件中存在 /WEB-INF/conf/configuration.properties
。当war部署到独立的Tomcat实例时,应用程序可以正常工作。
任何可能导致Spring无法找到战争中存在的配置文件的想法?
答案 0 :(得分:0)
/ WEB-INF / conf不在CLASSPATH中; / WEB-INF / classes是。尝试将.properties文件放在那里,看看你做得更好。
如果这不起作用,我想知道它是否是类加载器层次结构问题。 Java EE容器具有类加载器的层次结构:第一个是引导程序,第二个是应用程序服务器,最后一个是应用程序。可能是在应用程序服务器级别需要时,应用程序加载器中有.properties文件。