gpt4 book ai didi

java - Spring Boot fat jar 无法从 application.properties 中定义的绝对路径读取文件

转载 作者:行者123 更新时间:2023-12-01 19:52:29 25 4
gpt4 key购买 nike

所以我有一个 Spring boot fat jar,它有一个配置,需要从 application.properties 文件中定义的绝对路径加载 .pem 文件。

我这样定义路径:

security.jwt.public-key=/opt/samara/staging.pem

用法是这样的:

    @Value("\${security.jwt.public-key}")
lateinit var publicKey: Resource

这是目录结构:

root@samara:/opt/samara# ls -lsh
-rwxr-xr-x 1 root root 44M Nov 27 07:50 app.jar
-rwxr-xr-x 1 root root 2.0K Nov 27 07:53 staging.pem
-rwxr-xr-x 1 root root 1.2K Nov 27 08:29 application.properties

但是当我尝试像这样运行它时:

root@samara:/opt/samara# java -jar app.jar

它失败了:

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/opt/samara/staging.pem]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:158) ~[spring-web-5.1.8.RELEASE.jar!/:5.1.8.RELEASE]

实际上,我从另一台机器复制了这些文件,它在该机器上完美运行,但我不知道为什么它在新机器上失败。谢谢。

最佳答案

读完本文后: https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#resources

我将路径定义更改为:

security.jwt.public-key=file:/opt/samara/staging.pem

它成功了!

关于java - Spring Boot fat jar 无法从 application.properties 中定义的绝对路径读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59075176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com