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> タグがコードベースを暗黙的に指定できるようにする。