我正在尝试创建一个可以使用spring属性文件的WAR,但我似乎遇到了一些问题。
我可以看到我的属性文件在target的基本目录结构中,当我发生爆炸战时在WAR中。但是,当我尝试制作正常的WAR并部署它时,我找不到资源,特别是:
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [service.properties] cannot be opened because it does not exist
从Jetty我没有这样的问题。
这是资源的Spring java配置:
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
PropertySourcesPlaceholderConfigurer props = new PropertySourcesPlaceholderConfigurer();
props.setLocations(new Resource[] { new ClassPathResource("service.properties") });
return props;
}
这是我POM的相关部分。我添加了WAR配置,因为这就是maven似乎要做的here,但它似乎没有帮助。
<build>
<resources>
<resource>
<directory>src/main/config/local</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<goals>
<goal>war</goal>
</goals>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/config/local</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
任何人都知道我做错了什么?谢谢!
答案 0 :(得分:0)
您确定您的属性文件位于WEB-INF
文件夹中吗?如果它在外面并且只包含在war文件的根目录中,那么它将不会在类路径中找到。请参阅maven-war-plugin documentation - 覆盖您需要添加的默认位置(war文件的根目录)
<targetPath>WEB-INF</targetPath>