我正在尝试使用init.d将Spring Boot作为服务运行。我遇到一个问题,即-Dspring.profiles.active = xxx未被考虑,并且spring表示未找到活动配置文件,将配置文件设置为默认值。
我正在使用SpringBoot版本1.5.13。
以下是我的conf文件设置
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+UseG1GC -XX:+UseStringDeduplication -Djsse.enableSNIExtension=false -Djava.security.egd=file:/dev/./urandom"
MODE=service
RUN_ARGS=-Dspring.profiles.active=myprofile
我什至尝试设置环境变量RUN_ARGS,但该服务仍然无法使用它。
我的conf文件与jar文件相比位于不同的文件夹中,并且我在gradle版本中使用了 bootRepackage 指向该位置(如下所示)
bootRepackage {
mainClass = 'com.test.myapp.MyAppApplication'
executable = true
embeddedLaunchScriptProperties =
[
'mode': 'service',
'confFolder': '/etc/myapp/conf'
]
excludeDevtools = true
}
bootJar的名称和conf文件的名称相同。 另外,当我执行 head -100 myapp.jar
时,我还看到指定的confFolder已正确地放入bootJar中我已经使用ospackage将我的spring boot应用程序打包为rpm,然后使用yum install部署它并启动服务。
我不确定我缺少什么。任何帮助将不胜感激。
答案 0 :(得分:0)
不是将-Dspring.profiles.active设置为RUN_ARGS,而是将其设置为JAVA_OPTS,然后应用程序按预期运行。