在关键的云代工厂上部署后,访问资源文件,如jar中的xml

时间:2017-09-22 22:49:55

标签: java maven spring-boot jar pivotal-cloud-foundry

我使用spring boot创建了一个java微服务。该应用程序需要一些静态xml文件中的数据(保存在一个文件夹中,让它命名为X)在src / main / resources文件夹中。(我使用的是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")

但它没有用。它无法在运行时找到路径。

2 个答案:

答案 0 :(得分:0)

为什么不试试Apache Abdera。 您的XML是从API获得的。

另一种方式,顺便说一句。

答案 1 :(得分:0)

在您的主类(通常是Application.java)中,在类级别添加@ImportResource注释。 示例:@ImportResource("classpath:myfile.xml")