Web Start

このドキュメントでは例、また Java Web Start を使用した web server からデスクトップクライアント Java アプリケーションのデプロイ手段を提供しています。
Java Web Start を使用し Nexaweb デスクトップクライアントを起動することにより、ユーザーが接続しアプリケーションをダウンロードする異なるサーバー上で Nexaweb デスクトップクライアントアプリケーションを保存することができます。
Java Web Start で Nexaweb デスクトップクライアントを使用するとJDK 1.4-1.6と連動します。

Java Web Start で Nexaweb デスクトップクライアントを使用する前に、次のパフォーマンス事項を考慮します:

  • アプリケーションのサイズによってクライアントにダウンロードするまでの時間を決定します。
  • 設定に関連するネットワークセキュリティは、アプリケーションをクライアントにダウンロードする時間に影響することがあります。

Java Web Start からアプリケーションを稼働する

Java Web Start を使用し Nexaweb デスクトップクライアントアプリケーションをデプロイの仕方の理解を始めるには、WebStart テストアプリケーションをダウンロードして稼働させることをお勧めします。この例では web server として Tomcat を使用しています。

アプリケーションを稼働させるためには、次のステップに従います:

1. myCharts.war ファイルを tomcat\webapps ディレクトリにコピーする

2. Tomcat を開始: tomcat\bin へ行き、startup をダブルクリックする.

3.Web Browser のアドレスバーにある、次の URL に行く:
http://localhost:8080/myCharts/NexawebWebStartDemo.jnlp.
Java Web Start がローディングしていることを示す Java Loading ダイアログが表示されます。
Nexaweb Desktop Client launcherこの例の場合、NexawebWebStartLauncher.jarがローディングされていることを示すデスクトップクライアント起動ダイアログ が表示されます。

 


次のようなセキュリティ警告ダイアログが表示されます:

 

この警告は、Nexaweb デスクトップクライアントアプリケーションラウンチャーが署名のないアプリケーション JAR(NexawebWebStartDemo.jar) ファイルをシステムにコピーするたびに表示されます。

4. Run をクリック
Connected to Server ダイアログは次のように表示されます:

 

このダイアログは、Nexaweb デスクトップクライアントがサーバーに接続されていることを示しています。

5. OKをクリック
Client version was switched . . .dialog が表示されます。

完全なアプリケーションがサーバーからダウンロードされていないため、現在の ローカルデスクトップクライアントアプリケーションがサーバーのバージョンと同期していないことを示しています。このメッセージは、クライアントシステムでデスクトップアプリケーションを初めて起動したときに表示されます。

 

6. OKをクリック
完全な myChart デスクトップクライアントアプリケーション がサーバーからダウンロードされ、次のようにアプリケーションが開始します:

 

プログラム起動後は、次に注意して下さい。

  • このアプリケーションのJARファイル (NexawebWebStartDemo.jar, NexawebWebStartLauncher.jar), JNLP ファイル、コンフィギュレーションファイルがweb server webappsdirectory の myChartsdirectory に表示される。
  • 未パッケージ化の Nexaweb デスクトップクライアントアプリケーションファイルが、ローカルシステムに作成されたlaunch applicationのNexawebDesktopClient ディレクトリに表示される。
  • Nexaweb Desktopclientdesktop-short-cut とプログラムを作成した launch applicationがローカルシステムでエントリー開始。

初期インストール後、DesktopClient Launcherdesktop short-cut を使用または Programs メニューから Nexaweb デスクトップクライアント項目を選択することによりアプリケーションを開始することができます。アプリケーションが開始したら、システムがネットワーク接続を確認し、次のようなダイアログを表示します:

 

OK をクリックすると必要に応じてアプリケーションがサーバーからアップデートされます。

Java Web Start Launch の設定

Java Web Startを使用してNexaweb Desktop Clientをデプロイするためには、次を行う必要があります:

  • Java Network Launching Protocol (JNLP) ファイルの作成
  • Desktop Client 環境に起動アプリケーションを作成し、JAR ファイルにそれをパッケージ化する。
  • 最小の Nexaweb デスクトップクライアントアプリケーションを JAR ファイルにパッケージ化する。

JNLP File 作成

web server からアプリケーションフォームをダウンロードし、起動する方法を JNLP file に記述します。

Java Web Start を使用し Nexaweb デスクトップクライアントをデプロイするためには、myChartsアプリケーションに作成されたJNLPファイルの次の例にあるような最小の情報で JNLP ファイルを作成する必要があります。

 <jnlp spec="0.2 1.0"
     codebase=http://localhost:8080/myCharts
     href="NexawebWebStartDemo.jnlp">
    <information>
      <title>DesktopClient Launcher</title>
      <vendor>Nexaweb</vendor>
      <homepage href="http://www.nexaweb.com"/>
      <description>
         A demo application for Nexaweb Desktop Client
      </description>
      <description kind="short">
         Nexaweb Desktop Client short Description
      </description>
      <offline-allowed/>
     <shortcut>
         <desktop/>
         <menu submenu="Nexaweb Desktopclient"/>
     </shortcut>
    </information>
    <resources>
      <j2se version="1.3+" 
            href="http://java.sun.com/products/autodl/j2se"/>
      <j2se version="1.3+"/>
      <jar href="NexawebWebStartLauncher.jar" 
           main="true" download="eager"/>
    </resources> 
    <application-desc main-class="NexawebWebStartLauncher">
         <argument>http://localhost:8080/myCharts/</argument>
         <argument>NexawebWebStartDemo.jar</argument>
         <argument>c:/NexawebDesktopClient</argument>
         <argument>Applications/myCharts</argument>
    </application-desc>
    <security>
      <all-permissions>
    </security>
 </jnlp>  

 

次の表は、JNLP XML ファイルで必要な要素と属性です。
メモ: これらまたはその他 JNLP ファイル要素に関するより詳細な情報は以下をご覧ください。
http://java.sun.com/products/javawebstart/download-spec.html.

要素Attribute\Sub-Element説明
jnlpspecこのリリースで機能するためには 1.0 かそれ以上である必要があるデフォルト: 1.0+.
 codebaseこの JNLP ファイルの href 属性で指定されている全ての関連URL にベースURLを指定する
 hrefJNLP ファイル自体のロケーションを指している URL。Java Web Start が、アプリケーションマネージャーにこのアプリケーションを含めるために必要
information アプリケーションがロードしている間表示される情報
 titleアプリケーション名
 vendorアプリケーション作成者
 homepage hrefアプリケーションのホームページがある URL を指定する。アプリケーションまたはベンダーに関するより詳細な情報を含んでいる; Web page にユーザーをポイントさせる
 descriptionアプリケーションの説明
 description kinddescription の使い方を定義した属性 値は次を含む: one-line(リストまたは表の一列表示用); short (パラグラフが合う場所を示す); tooltip ( tooltip での表示)

offline-allowed
 JNLP ファイルでオフラインとマークされているアプリケーションのみを起動するアプリケーションマネージャー
この要素はまた、Java Web Start がアプリケーションのアップデートをどのように確認するかをコントロールしている。指定されると、Java Web Start はアップデートが利用可能かどうか確認する。しかし、アプリケーションが既にダウンロードされている場合、確認は数秒後タイムアウトし、その場合キャッシュされたアプリケーションが起動する。通常速度の接続状態で、通常アプリケーションの最新バージョンが起動するが、保証はされていない。しかし、このアプリケーションはオフラインで起動することができる。
resources Java class ファイル、ネイティブライブラリ、アプリケーションの一部であるシステムプロパティのような全てのリソースを指定する
 j2se versionアプリケーションがサポートされるJava 2 SE Runtime 環境バージョンとJava Virtual Machineの標準パラメータを指定する。まず一番優先されるバージョンでサポートJREの優先リストとしていくつかのサポートJREを指定することができる。
 
jar href
アプリケーションの暮らすパスの一部である JAR ファイルを指定する。
Web Start は、クラスローダーオブジェクトを使用し jar ファイルを JVMにロードする。Jar ファイルは通常特別なアプリケーションのコードが含まれている Java クラスを含んでいるが、アイコンやコンフィギュレーションファイルのようなその他のリソースも含んでおり、getResource メカニズムで利用可能である。
 mainこの要素がmain classを含んでいるかどうかを示す
 downloadWeb Start がリソースを eager または lazy でダウンロードするよう指定する。eager - Web Start が、アプリケーションの起動前 JVM 起動アプリケーションに対し、リソースをローカルで利用可能にする lazy – アプリケーションを起動する前にリソースをクライアントシステムにダウンロードする必要がない
application-desc JNLP ファイルがアプリケーションを起動していることを示している(アプレットとは反対)
 
main-class
アプリケーションのメインクラスの名前、つまり実行が開始される public static void main(String argv[]) メソッドを含むクラスを指定する。
security デフォルトでは、Web が制限付き実行環境で各アプリケーションを実行する。Applet sandbox も同様である。
 all-permissionsクライアントマシンとローカルネットワークへのフルアクセスがついたアプリケーションを提供する。アプリケーションがフルアクセスをリクエストする場合、全ての JAR ファイルが署名される必要がある。アプリケーションが初めて起動する時、Web Start ではユーザーに certificate を受諾するよう促す。


JNLP ファイルを作成するためには、次のステップに従います。

1. web servers webapps directory の myCharts directory から JNLP ファイルをコピーする

2. JNLP ファイルを XML または text editor で開く

3. サンプル JNLP ファイルに含まれている要素のアプリケーションの値を指定する

4.アプリケーション固有の名前で JNLP を保存する

起動アプリケーションの作成

Web server から Nexaweb Desktop Client application JAR file を取得するためには起動アプリケーションを作成する必要があります。Java Web Start はユーザーがクライアントでアプリケーションを起動したとき、起動アプリケーションを呼び出します。起動アプリケーションを作成後、それを JAR ファイルにパッケージ化する必要があります。

起動アプリケーションは次の事を行います:

  • Web server (この例では、NexawebWebStartDemo.jar )で Nexaweb Desktop Client application JAR ファイルを配置する
  • JAR ファイルを取得し、クライアントに保存する
  • JAR ファイルを Unpack する
  • アプリケーション JAR ファイルの主なエントリーを見つける
  • Desktop Client application を開始する主な方法を呼び出す

web servers webappsdirectory \myCharts\NexawebWebStartLauncher.jar のNexawebWebStartLauncher.classfile を開くことにより、NexawebWebStartLauncher アプリケーションのコードを見ることができます。

起動アプリケーションは、システムセキュリティマネージャーをリリースするため次の行を含める必要があります : System.setSecurityManager(null)

これはセキュリティスレッドを引き起こしますが、Java Web Start で起動した Nexaweb Desktop application を起動させるのに必要です。

以下は デスクトップクライアントアプリケーションを呼び出すアプリケーションの主なメソッドを示しています:

 public static void main(String args[]) throws Exception { 

     NexawebWebStartLauncher nwsl = new NexawebWebStartLauncher
    (args[0].trim(), args[1].trim(), args[2].trim(), args[3].trim());

     System.setSecurityManager(null);

     if (!nwsl.launcherFileExists()){
           nwsl.createNexawebDesktopEnv();
           nwsl.unzipNexawebDesktopEnv();
     }
     nwsl.startNexawbApp();

} 

Nexaweb Desktop Java Client Application のパッケージ化

Nexaweb desktop client applicationのパッケージ化をするためには、次の主なステップに従う必要があります:

  • アプリケーション web.xml を編集する
  • アプリケーションのテスト起動する
  • JAR ファイルで最小 Nexaweb client application をパッケージ化する
  • JAR ファイルで起動アプリケーションをパッケージ化する
  • JAR ファイルに署名をする

 

web.xml の編集

JNLP と JAR ファイルリクエストを取得するため、Desktop Client application のweb.xmlfile を編集する必要があります。

web.xml ファイルを編集するためには、次の手順に従います。

1. project-root/Webcontent/WEB-INF の下に Nexaweb Desktop Client Application の web.xmlfile を配置する

2.ファイルをダブルクリックして開く

3. 次の mime-mapping 要素をファイルに追加する

<mime-mapping>
   <extension>jar</extension>
   <mime-type>application/java-archive</mime-type>
 </mime-mapping>
 <mime-mapping>
   <extension>jnlp</extension>
   <mime-type>application/x-java-jnlp-file</mime-type>
 </mime-mapping> 

4. ファイルを保存し閉じる

アプリケーションのテスト起動

パッケージをする前に Desktop Client Application が自動で起動するかテストするため、次のような .bat ファイルを作成します:

java -classpath nexaweb-desktop-client-launcher.jar com.nexaweb.client.desktop.launcher.Launcher Applications/DesktopClient

.bat file を作成後起動させ、Desktop Client アプリケーションが自ら起動するかテストをします。

パッケージ化

Java Web start は secure sandbox なため、launcher アプリケーションと JAR ファイルの最小 Nexaweb desktop client アプリケーションをパッケージ化する必要があります。同じサーバーに全ての JAR ファイルを保存する必要があります。

最小 Nexaweb desktop client application には次が必要です:

  • Nexaweb-desktop-client.xml file
  • Version.txt file
  • Desktop client directory structure

Nexaweb studio で Nexaweb desktop client application を起動する際、Nexaweb Studioは必要である次のような desktop ディレクトリ構成を作成します:

 

このディレクトリ構成を最小 Nexaweb desktop client JAR ファイルに追加し、サーバーがその後、残りのアプリケーションをローカルシステムにダウンロードする際このディレクトリ構成がローカルシステムに残っているようにします。

JAR ファイルの署名

ローカルファイルシステムアクセスでは、サーバー側でDesktop Client applicationの全てのJARファイルに署名をする必要があります。

サーバー側でJARファイルに署名をする方法:

1. web server command prompt windowにて次のコマンドにより key を作成する。
keytool -genkey -keystore nxWS.keys -alias http://www.nexaweb.com/-validity 365

2. web server command prompt windowで次のコマンドによりNexawebWebStartLauncher.jar に署名をする。
jarsigner -keystore nxWS.keys -storepass 123456789 NexawebWebStartLauncher.jar http://www.nexaweb.com/