由systemd启动时不加载Spring外部配置文件

时间:2017-09-09 04:47:29

标签: java spring spring-boot systemd

我正在开发和测试基于Spring引导的java应用程序。

我有外部配置文件" application.yml"存储在" config"与部署服务器中相应的jar文件(" nlp-0.0.1-SNAPSHOT.jar")并排放置的文件夹(根据" 24.3 Application property files&#34 ;)

这是我的" application.yml"档案

---
 params:
   trustStorePath: config/client-truststore.jks
   trustStorePassword: wso2carbon
   keyStorePath: config/wso2carbon.jks
   keyStorePassword: wso2carbon
   defaultType: JKS
---
server:
   port: 9763
---

只要我手动启动应用程序,这就完美了:

java -jar nlp-0.0.1-SNAPSHOT.jar

但是,当我尝试通过systemd命令启动应用程序时:

sudo systemctl start  nlp.service

应用程序启动,但配置文件" application.yml"位于" config"文件夹未加载

这是我的" nlp.service"文件

[Unit]
Description=NLP Service

[Service]
User=wjz
ExecStart=/usr/bin/java -jar /home/wjz/nlp-0.0.1-SNAPSHOT.jar
[Install]
WantedBy=multi-user.target

那么,问题是什么?我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

也许您应该尝试在服务中指向选项"WorkingDirectory"。 例如,如果您的应用位于/home/wjz/nlp-0.0.1-SNAPSHOT.jarapplication.yml位于/home/wjz/config,那么WorkingDirectory=/home/wjz/