2016-10-06 15 views
0

外部ツールを使用してレポートを作成するWebアプリケーションがあります。このツールは、レポートを生成したいテンプレートへの絶対パスを必要とします。Wildfly war deploymentリソースファイルへのパスを取得する

テンプレートを私のwarファイルに含まれるリソースとして展開します。これが動作しない爆発しない戦争を使用して

String path = Thread.currentThread().getContextClassLoader().getResource(resourceFile).getPath(); 
File f = new File(path); 
String absoluteFileName = f.getAbsolutePath(); 

は私がうまく機能し、このような何かを行うことができます爆発戦争を使用している場合。このようなことをする機会はありますか?

私はリソースの内容を必要としないので、getResourceAsStream(..)は私が探しているものではありません。

答えて

2

getResourceAsStream()を使用し、内容を既知の場所に書き込む必要があります。次のようなものを使用して、展開中のテンプレートを一時ファイルにコピーすることができます。

final InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourceFile); 
final Path f = Files.createTempFile("template", ".txt"); 
Files.copy(in, f); 
final String absoluteFileName = f.toAbsolutePath().toString(); 

あなたが知られているテンプレートのセットを持っている場合は、@javax.ejb.Singleton@javax.ejb.Startup EJBを使用することができます。

関連する問題