2

プロパティを含むファイルを *tomcat_folder*/conf に置き、それを読み取ろうとします。

InputStream input = this.getClass().getClassLoader().getResourceAsStream("conf.properties");
properties.load(input);

しかし、実際には「null」を受け取ります。現在のフォルダーを印刷しようとすると、「home/username」フォルダーが表示されます(現在のフォルダーからconfフォルダーに移動したかったのです)。

「catalina.properties」には「shared.loader=」が含まれているため、理論的にはこのファイルはそこから読み取られるはずですが、そうではありません...

これを行う方法に関する解決策はありますか?

4

3 に答える 3

3

解決策を見つけました。${catalina.home}/conf を catalina.properties -> shared.loader に追加しました

shared.loader=${catalina.home}/conf

this.getClass().getClassLoader().getResourceAsStream("conf.properties");

正常に開くようになりました。

于 2012-04-26T22:45:17.827 に答える
0

試す

properties.load(Thread.currentThread().getContextClassLoader().
        getResource("filename.properties").openStream());`

JBoss6で動作します。

于 2012-04-26T13:35:38.847 に答える
0

this.getClass()。getClassloader()を呼び出すときに取得するクラスローダーは共有のものではないと思います。実際、それは「これ」がどこにあるかに依存します。

現在のクラスローダーが委任する必要があると思いますが、クラスローダーを介してこのファイルを取得できるかどうかはわかりません。共有クラスローダーは、TomcatAPIを介して取得できる可能性があります。

CATALINA_HOME / BASEプロパティを試して、ファイルシステム経由でファイルにアクセスできます。

于 2012-04-26T13:32:53.247 に答える