Rich Internet Application 配備アドバイス > コードベースの決定
目次JNLP ファイルでは、コードベースは <jnlp>
タグのオプションパラメータです。コードベースは、その JNLP ファイルに記述されているリソースを見つけるためと、その JNLP ファイル自体を検索するための両方の目的に使用されます。技術的な理由から、絶対コードベースが指定されていないかぎり、Java Web Start はサーバーから JNLP ファイルの内容を更新できません。
Java SE 6 Update 10 リリースで導入された新しい Java Plug-in では、明示的に指定されたか、または HTML ドキュメントの場所から暗黙的に取得されたかのどちらかの理由で、コードベースが常にブラウザによって提供されます。これにより、JNLP ファイル内で、コンテンツのツリー全体をあるサーバーから別のサーバーに移動する場合に非常に有効な相対 URL を使用できるようになります。
JNLP ファイルは、ツリー構造内のほかの JNLP ファイルを参照します。JNLP アプレットのルート JNLP ファイルは、<applet>
タグによって参照されます。APPLET タグのコードベースは、ルート JNLP ファイルの場所を定義するのに役立ちます。
コードベース計算の規則は次のとおりです。
これを、単純な Java の用語で次のように表現できます。
URL new_codebase = new URL(current_jnlp_dir, current_jnlp_codebase);
このコードベース計算は JSR-56 の拡張ではありません。JSR-56 ではコードベースは絶対値に制限されるわけではないので、相対値も指定できます。
例 1:
this JNLP's location: http://someserver.example.com/this.jnlp this JNLP's codebase: http://www.example.com/test/ resulting codebase for parsing this JNLP: http://www.example.com/test/
例 2:
this JNLP's location: http://www.example.com/test2/this.jnlp this JNLP's codebase: <none> resulting codebase for parsing this JNLP: http://www.example.com/test2/
例 3:
this JNLP's location: http://www.example.com/this.jnlp this JNLP's codebase: codebasedir resulting codebase for parsing this JNLP: http://www.example.com/codebasedir
例 4:
相対パスは、HTML ファイルのツリーの場合と同様に、入れ子の各 JNLP を参照するために使用されます。
www.example.com/html/my_applet.html refers to: my_applet.jnlp codebase: www.example.com/html my_applet.jnlp: codebase not specified inherits "www.example.com/html" references JNLP extension "jogl/jogl.jnlp" jogl/ jogl.jnlp codebase not specified inherits "www.example.com/html/jogl" (the directory containing jogl.jnlp) references gluegen-rt/gluegen-rt.jnlp gluegen-rt/ gluegen-rt.jnlp codebase not specified inherits "www.example.com/html/jogl/gluegen-rt" (the directory containing gluegen-rt.jnlp)
次のいずれかをお勧めします。
<applet>
タグがコードベースを暗黙的に指定できるようにする。