ベストプラクティスに従って、ファイルAPIを使用する代わりにThread.currentThread().getContextClassLoader().getResourceAsStream
を使用して、Webアプリケーション(テキストファイルやXMLファイルなど)でリソースを読み込みます。getResourceAsStreamによってロードされたリソースをリロードする
しかし、これは、ディスク上のリソースが変更された場合、次のgetResourceAsStreamの呼び出しによって古いバージョンが無期限に返されるという欠点があります。
私は新しいバージョンを手に入れたいと思います。私のデバッガでは、classLoaderにresourceEntriesという単純なHashMapがあります。リフレクションを使用して、特定のエントリを削除できましたが、これはうまくいくようです。
しかし、この方法は脆弱です。
もっと標準的な方法がありますか?
これを保持する 'ClassLoader'の正確な実装は何ですか? – Bozho
この場合は、Tomcat 5の '' org.apache.catalina.loader.WebappClassLoader''でした。私は新しいTomcatバージョンではまだ試していませんが、JBossで試してみました。予想通り)。 – akira