在Wildfly Server中部署Spring Boot WAR时,如何外部化.properties文件?

时间:2019-07-04 16:06:11

标签: spring maven jboss wildfly war

我正在使用Spring Boot开发一个Web应用程序,并希望产生战争而不是jar。 使用此处描述的从jar到war的转换,效果很好:http://spring.io/guides/gs/convert-jar-to-war/

但是我想从战争中外部化application.properties,因为我希望能够在不打开战争档案的情况下对其进行修改。

我已经定义了spring-boot-maven插件。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
            <configuration>
                <classifier>spring-boot</classifier>
                <mainClass>
                  com.application.Application
                </mainClass>
            </configuration>
        </execution>
    </executions>
</plugin>

我认为我需要在清单文件中添加Dependency: config。 所以,我已经做到了:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <archive>
                <manifestEntries>
                    <Dependencies>config</Dependencies>
                </manifestEntries>
            </archive>
        </configuration>
    </plugin>

但是当我在Wildfly 8.4上启动Application.war时,我已经知道了

{"JBAS014671: Failed services" => {"jboss.module.service.\"deployment.Application.war\".main" => "org.jboss.msc.service.StartException in service jboss.module.service.\"deployment.screening.war\".main: JBAS018759: Failed to load module: deployment.Application.war:main
    Caused by: org.jboss.modules.ModuleNotFoundException: config:main"}}

我希望我的应用程序以我的自定义MANIFEST.MF(带有Dependency:config)开始,以便我可以将我的application.properties文件外部化。

谢谢。

1 个答案:

答案 0 :(得分:0)

问题出在服务器端!

指定软件包时,您需要为Wildfly服务器添加 module.xml 文件。

因此,在modules/config/main/中,我添加了 application.properties 和一个包含以下内容的 module.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="config">
    <resources>
        <resource-root path="."/>
    </resources>
</module>

感谢您@NielsNet的回复。