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】:

通过将ClassLoaderInputStream 一起使用来解决,如下所示:

ClassLoader classLoaderKeyStore = Thread.currentThread().getContextClassLoader();
InputStream keyStreamKeyStore = classLoaderKeyStore.getResourceAsStream("keys/my-ssl.jks");

【讨论】:

以上是关于ElasticBeanstalk 读取资源路径问题 - 未找到的主要内容,如果未能解决你的问题,请参考以下文章

小谈——读取web资源文件的方式和路径问题

JavaWeb中读取文件资源的路径问题 -- 转自新浪博客

elasticbeanstalk 不会设置虚拟路径

Java或者JAR包获取读取资源文件的路径的问题总结

java程序读取资源文件时路径如何指定

Java 获取资源文件路径