【发布时间】:2018-03-04 14:14:13
【问题描述】:
我使用 spring boot 创建了一个 java 微服务。该应用程序需要来自 src/main/resources 文件夹中的静态 xml 文件的一些数据(一起保存在一个文件夹中,我们将其命名为 X)。(我正在使用 STS IDE) 当我在 IDE 本身中运行它时,它工作正常。 现在,当我将它打包到 jar 中并尝试使用 CLI (java -jar jarFileName.jar) 运行它时,它可以工作并从 target/classes 文件夹访问文件夹 X。
现在我的问题是,当我尝试使用 CLI 或 STS 插件在 Pivotal Cloud Foundry 上部署这个小应用程序时,我必须提供 jar 文件的路径,以便它只上传相应的 jar 文件并启动容器应用程序。 但应用程序无法访问包含其资源的文件夹 X。
虽然我确认 jar 文件包含 BOOT-INF/classes 中的文件夹 X,但它会尝试在自己的路径上找到文件夹 X - 而不是在其内部。
有谁知道部署在 PCF 上的 jar 文件如何访问其内部保存的资源。
我尝试过使用
InputStream is = this.getClass().getClassLoader().getResourceAsStream("X/abc.xml")
但它没有用。运行时找不到路径。
【问题讨论】:
-
您要问的是云原生开发的反模式。请查看12factor.net
-
在运行时你想加载你的 xml 文件然后请查看答案。
标签: java maven spring-boot jar cloud-foundry