我已经在服务器上以 jar 文件的形式运行 Spring Boot 应用程序(开放班次)。 根据环境,我需要不同的密钥库和信任库。这意味着我无法提交这些文件,但需要通过配置映射将它们加载到服务器。我将这些文件放在单独创建的文件夹 /etc/trusts 中,并且应用程序在 /app 文件夹中运行。在我的配置中,我使用 /etc/trusts/keystore.p12 和 /etc/trusts/truststore.p12 处理 keyore 和 truststore,但出现错误:
“类路径资源 [etc/trusts/keystore.p12] 无法打开,因为它不存在”
但是它存在并且可以在服务器上看到它。我怎样才能让它运行,以便 spring boot 可以访问 /etc/trusts 文件夹中的文件?
信息:我检查了配置是否具有前导斜杠 /etc 并且它已正确存储,因此只有错误消息不使用它。
我如何尝试加载文件:
val resource: Resource = resourceLoader.getResource(fileLocation)
return resource.inputStream
对于我的本地环境,我在 src/main/resources 中有文件,并使用 classpath:keystore.p12 等在配置中解决它们。它运行良好。
提前感谢您的帮助。
正如在 getResource 的文档中可以看到的,您需要指定资源是在
classpath
上还是在您的情况下 file
。
所以你必须在你的路径前面添加
file:
,例如:
val resource: Resource = resourceLoader.getResource(`file:/etc/trusts/keystore.p12`)