我正在开发和测试基于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
那么,问题是什么?我错过了什么吗?
答案 0 :(得分:5)
也许您应该尝试在服务中指向选项"WorkingDirectory"
。
例如,如果您的应用位于/home/wjz/nlp-0.0.1-SNAPSHOT.jar
且application.yml
位于/home/wjz/config
,那么WorkingDirectory=/home/wjz/