ElasticBeanstalk 读取资源路径问题 - 未找到
Posted
技术标签:
【中文标题】ElasticBeanstalk 读取资源路径问题 - 未找到【英文标题】:ElasticBeanstalk issue reading resource path - Not Found 【发布时间】:2021-02-28 03:17:37 【问题描述】:我从 ElasticBeanstalk 日志中得到的错误是:
无法解析为绝对文件路径,因为它不驻留在文件系统中:jar:file:/var/app/current/application.jar!/BOOT-INF/classes!/keys/my-ssl.jks
我以这种方式请求文件:
@Value("$javax.net.ssl.trustStore")
private Resource trustStore;
@Value("$javax.net.ssl.trustStorePassword")
private char[] trustStorePassword;
@Value("$http.client.maxPoolSize")
private Integer maxPoolSize;
我的 application.properties 看起来像:
javax.net.ssl.trustStore=classpath:keys/my-ssl.jks
javax.net.ssl.trustStorePassword=password
http.client.maxPoolSize=10
我的项目结构如下:
-src
-main
-resources
-keys
--my-ssl.jks
注意:这在本地完美运行,一旦部署到 EB 就无法找到 jks。
【问题讨论】:
您能否通过 ssh 进入 EB 实例并从内部检查您的应用的组织方式? 【参考方案1】:通过将ClassLoader
和InputStream
一起使用来解决,如下所示:
ClassLoader classLoaderKeyStore = Thread.currentThread().getContextClassLoader();
InputStream keyStreamKeyStore = classLoaderKeyStore.getResourceAsStream("keys/my-ssl.jks");
【讨论】:
以上是关于ElasticBeanstalk 读取资源路径问题 - 未找到的主要内容,如果未能解决你的问题,请参考以下文章