Spring Boot 应用程序作为服务运行时失败,但从命令行运行时工作正常

问题描述 投票:0回答:1

我正在运行 Ubunut Linux 服务器,并且我正在尝试将 Spring Boot 应用程序作为服务运行。

我在 /etc/systemd/system/example.service 中创建了一个包含以下内容的文件:

[Unit]
Description = Java Test Service
Wants=network-online.target
After=network-online.target
[Service]
User=beeadmin
ExecStart=/home/beeadmin/beebackend/target/backend-0.0.1-SNAPSHOT.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

应用程序启动,但当我检查状态时,我收到以下错误:

Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1372) ~[spring-beans-6.1.1.jar!/:6.1.1]
Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar!/:6.1.1]
Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar!/:6.1.1]
Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar!/:6.1.1]
Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar!/:6.1.1]
Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-
6.1.1.jar!/:6.1.1]
Jan 05 11:58:43 beeguide backend-0.0.1-SNAPSHOT.jar[73319]:         ... 59 common frames omitted
Jan 05 11:58:43 beeguide systemd[1]: beeguide.service: Main process exited, code=exited, status=1/FAILURE
Jan 05 11:58:43 beeguide systemd[1]: beeguide.service: Failed with result 'exit-code'.

某些自动装配的依赖项似乎存在问题。我不明白为什么当我这样运行它时它会正常执行:

java -jar /home/user/app/target/app.jar

我期望 .jar 文件像我单独运行 .jar 文件时一样执行。

linux spring-boot daemon
1个回答
0
投票

服务文件中的

ExecStart
命令应包含与本地启动应用程序时相同的
java -jar
命令。像这样的东西:

Environment="JAVA_HOME=/path/to/java/home"
ExecStart=${JAVA_HOME}/bin/java -jar /var/myapp/myapp.jar

Spring Boot 文档 有关如何执行此操作的进一步指导。

© www.soinside.com 2019 - 2024. All rights reserved.