2017-09-22 36 views
1

我使用spring引导创建了一个java微服务。该应用程序需要从静态XML文件中的某些数据(文件夹中保存在一起,让我们将其命名为X)中的src/main /资源文件夹中。(我用STS IDE) 当我在IDE本身运行它,它工作正常。 现在,当我收拾它在一个罐子并尝试使用CLI(Java的罐子jarFileName.jar)运行它,它的工作原理,并从目标/ classes文件夹访问该文件夹X。在部署在关键云代工厂之后访问资源文件,如jar中的xml

现在我的问题是,当我尝试使用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") 

,但没有奏效。在运行时无法找到路径。

+0

您所要求的是云本机开发的反模式。 请查看https://12factor.net/ –

+0

尝试使用[Spring Cloud Config Server](https://cloud.spring.io/spring-cloud-config/single/spring-cloud-config.html ) –

+0

在运行时你想加载你的XML文件,然后请检查出答案。 –

回答

0

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

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

0

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