0

我正在尝试创建一个可以使用弹簧属性文件的 WAR,但我似乎遇到了一些问题。

我可以在目标的基本目录结构中看到我的属性文件,并在我进行爆炸战争时在 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

从码头我没有这样的问题。

这是我的资源的spring java配置:

@Bean
    public static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {

        PropertySourcesPlaceholderConfigurer props = new PropertySourcesPlaceholderConfigurer();
        props.setLocations(new Resource[] { new ClassPathResource("service.properties") });
        return props;
    }

这是我的 POM 的相关部分。我在 WAR 配置中添加了,因为这似乎是 maven 在这里所说的,但它似乎没有帮助。

<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>

有人知道我在做什么错吗?谢谢!

4

1 回答 1

0

您确定您的属性文件在WEB-INF文件夹内吗?如果它在外部并且只是包含在 war 文件的根目录中,那么它将不会在类路径中找到。请参阅maven-war-plugin 文档- 覆盖您需要添加的默认位置(war 文件的根目录)

<targetPath>WEB-INF</targetPath>
于 2013-06-10T10:34:17.647 回答