【问题标题】:spring boot get file on herokuspring boot 在heroku上获取文件
【发布时间】:2016-08-14 03:36:15
【问题描述】:

我有一个 Spring Boot 项目,其中有一个资源文件,可以使用以下方式访问:

final ClassLoader classLoader = getClass().getClassLoader();
        final File file = new File(classLoader.getResource("congress.json").getFile());

当我在本地运行 spring boot 时,它发现文件一切正常,但是当我在 Heroku 上部署项目时,我看到一个错误:

2016-08-13T13:56:31.400796+00:00 app[web.1]: java.io.FileNotFoundException: file:/app/target/nytimes-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/congress.json (No such file or directory)

使用 heroku run bash 访问 Heroku dyno 我可以看到文件:

~ $ ls
mvnw  mvnw.cmd  pom.xml  src  target
~ $ cd target/
~/target $ ls
classes  generated-sources  generated-test-sources  maven-archiver  maven-status  mvn-dependency-list.log  nytimes-0.0.1-SNAPSHOT.jar  nytimes-0.0.1-SNAPSHOT.jar.original  test-classes
~/target $ cd classes/
~/target/classes $ ls
application.properties  com  congress.json  senate.json

为什么找不到文件?我该如何解决?

【问题讨论】:

    标签: spring heroku spring-boot


    【解决方案1】:

    正如@codefinger 所说:Heroku Unable To Find XML Config File

    我必须使用getResourceAsStream 而不是getResource

    【讨论】:

    • 这是一个适用于我的代码 sn-p - try (InputStream inputStream = getClass().getResourceAsStream(fileName);BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {String content = reader.lines().collect(Collectors.joining(System.lineSeparator()));}
    猜你喜欢
    • 2017-08-01
    • 2015-09-04
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 2019-05-05
    • 2021-05-02
    • 1970-01-01
    • 2014-12-13
    相关资源
    最近更新 更多