2011-01-13 6 views
4

Javaアプレットが実行されると、クラスローダーは、アプレットのジャーにあるはずのものファイル、または誰も必要としないもの。クラス、プロパティファイル、アプレット内のすべてのクラスのBeanInfo、名前を付けます。これは、実際には完全に意図的で、明らかに、jarファイル全体を置き換えることなくjarファイル内の個々のファイルに更新を提供することを想定しているようです。そのため、クラスローダーは最初にファイルをリモートから取得しようとします。それはすでに持っているローカルコピーです。Javaアプレットのクラスローダーがクラスのリモート取得を試みないようにする

私はそれが非常に厄介で無駄であることがわかりました.Webサーバーは、拒否しなければならない無駄な要求によって叩かれ続けます。デフォルトの振る舞いを逆転させる方法はありませんか?つまり、クラスローダーにローカルコピーを最初に使用するように指示し、必要なリソースがローカルに見つからない場合にのみ、リモートからフェッチします。私はちょうど設定しなければならない何らかのシステムプロパティがあるかもしれないことを望むのはあまりにも嫌でしょうか?これを達成するためには、実際に代替クラスローダーを書く必要がありますか?

答えて

4

ファイルは、まずアーカイブから読み込む必要があります。失敗するはず緩いファイル検索を抑制するためには、そのためのオプションがあります:

<PARAM name="codebase_lookup" value="false"> 

http://download.oracle.com/javase/6/docs/technotes/guides/plugin/developer_guide/special_attributes.html#codebase

+0

有望な音、私はそれを試してみますよ。 –

+0

これはアプレットとオブジェクトのタグに対してのみ機能します。埋め込みタグでは、これは何の効果もありません。埋め込みタグでこのルールを適用するにはどうすればよいですか?たとえば、埋め込みタグを使用するFirefoxやChromeは、常にリクエストを試行します –

関連する問題