2017-06-12 6 views
0

MAYEN を使用してWildFlyにいくつかのEARアプリケーションを作成しています。EARにいくつかの設定ファイル、ログ、およびユーザースクリプトを配置する必要があります。私は、依存するejbまたはwarモジュール内のどのクラスからでもそれらのファイルに\ writeを読み込むことができます。 これらのファイルは、耳のモジュール の\src\main\application\somedirディレクトリに置くことができますが、これらのファイルにはアクセスできませんgetResourceAsStream()依存モジュールの 私はいくつかの解決策を教えてくれますか? 質問を指定する必要があります。質問は「特定のクラスからファイルをロードするためにファイルを配置する必要がある場所」ではない 質問は「EARの一部のモジュールから\ writeを読み込むファイルが必要な場合、ユーザーは簡単なエディタで編集できます」EARのカスタムリソース

+0

getResourceAsStream()は、READ-ONLYファイルの代わりにCLASSPATH内のファイルを検索します。これらのファイルに書きたい場合は、ファイルシステム(FS)に入れ、FSフルパスで参照する必要があります。 –

答えて

0

getResourceAsStream()クラスパス内のファイルを検索します。 EARファイルの内容がクラスパス上にありません。

ソリューション:あなたは、次のJavaコードでそれを読むことができます(あなたのEAR内の)戦争にファイルを置く:

*.war\WEB-INF\classes\config.properties 

getResourceAsStream("config.properties") 
0

あなたのクラス/パッケージ/リソース(またはWEBでのそれを配置した場合-INF /クラス)を使用すると、クラスローダを使用して、それへのInputStreamを取得することができ、Uは、このようないくつかの一般的なを使用することができます。

InputStream isFile = SomeClassInTheSamePackage.class.getResourceAsStream("yourFileName"); 

またはUは、Apache/Tomcatを使用している場合、Uは次のようにいくつかのことを使用することができます。

String catPath = System.getProperty("catalina.home");//"user.dir" 
String path = catPath + "webapps" + File.separator + "nameOfYourApp.ear/.war/.jar"; 
File myFile = new File(path); 
BufferedOutputStream buffer = new BufferedOutputStream(new FileOutputStream(myFile)); 
//buffer. 
buffer.close(); 

私はそれがあなたを助けてくれることを願っています。

関連する問題