私はサンドボックス化されたアプレットを持っていますが、それは違いを生まないはずです。
アプレットは2つのjarファイルで構成されています。同じdomain1で両方のファイルをホストする場合、すべて問題ありません。特定の特別な状況のため、別のdomain2でjar2をホストする必要があります。
アプレットタグに、両方のファイルarchive = "jar1.jar、http: //domain2.com/jar2.jar"をリストします。
まず、うまく機能しているようです。両方のjarファイルがロードされ、すべてが正常に機能します。それでも、jarファイルの1つからリソース(画像など)にアクセスしようとするとすぐに問題が発生します。
jarファイルからリソースを取得するにはどうすればよいですか?最初にリソースの場所のURLを取得することで、リソースを取得します。
public static URL getURL(String name){return ResUtils.class.getResource(path);}
domain1で両方のjarをホストする場合、このメソッドはURLを返します。2つのドメインでホストされている場合、getURL(...)はNULLを返し、リソースをフェッチするときに例外が発生します。
Caused by: java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
ResUtils.class.getResourceはそのクラスローダーを使用してURLを返すと思います。何らかの理由で、2つのドメインで両方のjarをホストする場合、getRessource()への呼び出しを追加するとNULLが返されます。
だから私の質問は:
- getURLがNULLを返すのはなぜですか?
Javaプラグインは、これらのjarを異なるドメインでホストできないように設計されていますか?異なるドメインでjarをホストする場合、どのようにリソースをロードする必要がありますか?