2017-09-22 4 views
1

私はスプリングブートを使用して1つのJavaマイクロサービスを作成しました。アプリケーションは、src/main/resourcesフォルダ内の静的なxmlファイル(フォルダ内にまとめて保存、名前を付けてXにする)からのデータを必要とします(STS IDEを使用しています) IDE自体で実行するとうまくいきます。 これをjarファイルにパックし、CLI(java -jar jarFileName.jar)を使用して実行すると、target/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から取得されます。

ちょうど別の方法、btw。

0

メインクラス(通常はApplication.java)にクラスレベルで@ImportResourceアノテーションを追加します。 例:@ImportResource("classpath:myfile.xml")

関連する問題