Java Web Start の簡単な例 (iSeries / JTOpen)

Java Web Start は、Web を利用して Java アプリケーションをクライアントに配布する仕組みです。
仕組みの基本はいたって単純で、Java アプリケーションを JAR ファイルにし、それをダウンロードするための記述である JNLP(Network Launching Protocol) ファイルを記述して Web サーバーにおいておくだけです。

メリットとしては、サーバー側から見ればやはり Java アプリケーションを簡単に配布できる、ということでしょう。
クライアント側としては、JSP などのサーバーサイド技術が進歩してもまあ結局は HTML の範囲をほぼ出ないので、Java による GUI のアプリケーションの方が見栄えやたいていのばあいの使い勝手はよく、それを面倒な導入などの手間なしで使用できる、というのがメリットになるでしょう。

いろいろ可能性のあるテクノロジーには違いないと思います。
より詳しくはこちらの記事などを参照してみてください。


サーバー側の準備 (MIME タイプの設定)

JNLP ファイルを使用するためには、サーバー側に新しい MIME タイプとして jnlp というものが登録されている必要があります。
Tomcat 5.x の場合には、以下の web.xml の例にあるように、もうすでに jnlp という MIME タイプが登録済みになっているので、特別何かを変更する必要はありません。

今回の稼働環境と使用アプリケーション

ダウンロードの対象とする Java アプリケーションには以前紹介した JTOpen のサンプルアプリケーションを使用してみました。

このサンプルアプリケーションには、当然ながら JTOpen のいろんなクラスが必要になるのですが、クラスパスなどの設定のしかたが意外と難しく、正直よくわからなかったので Toolbox for Java のライブラリーである jt400.jar にこのデモ用のアプリケーションを追加してしまいました。
つまり、もともとの JTOpen のアーカイブである jt400.jar にサンプルアプリケーションを追加してひとつの JAR ファイルにして、これをダウンロード用の JAR ファイルとして使用している、ということです。

今回は Web サーバーに iSeries 上で稼動させた Tomcat 5.0.19 を使用しています。(稼動のさせ方等はたとえばこちらなどをご参照ください)
webapps/ROOT サブディレクトリーの下に jt400jws というサブディレクトリー (URI になります) を作成し、そこに上記の JAR ファイルと、その JAR ファイルをダウンロードさせる記述である JNLP ファイルを置きます。JNLP ファイルの内容は後述します。拡張子は .jnlp とします。

JAR ファイルの指定

JAR ファイルにはメインとなるクラスの指定を行います。
以下の例はもう署名 (後述) をしてしまった後のものなのですが、Manifest ファイルでその指定を行っています。

JNLP ファイル

内容

JNLP ファイルの内容はこんなかんじです。
名前は HTML のリンクやブラウザーからの接続に使用されるだけですので、特別な制約などはありません。
だいたい内容は見ればわかると思います。最後の <argument> はアクセスする先のシステム名になっています。

LoadJt400Demo.jnlp
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+"
      codebase="http://AS400E:8080/jt400jws/"
      href="LoadJt400Demo.jnlp" >Java

<information>
  <title>Load JT400 Demo</title>
  <vendor>iSeries Corp</vendor>
  <description>iSeries Toolbox for Java Demo</description>
  <offline-allowed/>
</information>

<security>
  <all-permissions/>
</security>

<resources>
  <j2se version="1.4+"/>
  <jar
     href="jt400.jar"
     main="true"
     download="eager"  />
</resources>

<application-desc main-class="com.ibm.as400.demo.AS400Demo">
   <argument>AS400E</argument>
</application-desc>

</jnlp>

署名

JAR ファイルに署名を行います。

まず証明書の発行を行います。
keytool ユーティリティを使用します。使い方は以下のようなかんじですが、詳しくは Sun のサイトを見てください。

生成したキーと証明書を元に JAR ファイルに署名します。
jarsigner ツールを使用します。こちらも使い方は以下のようなかんじですが、詳しくは Sun のサイトを見てください。

動作の確認

jnlp ファイルにブラウザーからアクセスします。
実際にはほとんどこの jnlp ファイルのリンクを埋め込んだ HTML ファイルを用意して、そこからアクセスする、という使い方になるんでしょうね。

アクセスが OK だと、まず以下のようなスプラッシュ画面が出ます。

そして以下のような状況表示画面に続きます。
JAR ファイルをダウンロードしているのがわかりますね。

署名つきの JAR ファイルなので、これを信頼するかどうかのダイアログボックスが、通常のブラウザーの設定だと出ると思います。
「はい」か「常に」を押して先に進んでください。

JNLP ファイルには引数としてシステム名だけを渡しているので、ユーザー/パスワードが必要になります。
以下のようなダイアログボックスを JTOpen のクラスが出してきますので、ここでアクセス可能なユーザー/パスワードを指定します。

サインオンがうまく行くと、以下のようなサンプルアプリケーションの状況表示画面になります。

しばらく待つと、こんなようにサンプルアプリケーションが表示されます。

[Top Pageに戻る]

[PR] | 貴金属 買取ハウスクリーニング韓国食材インプラント転職サイトSEOアクセス解析ハウスメーカーレンタルオフィスSEO対策消費者金融不動産担保ローン時計車 買取ハワイ挙式アスクル転職生命保険テンプレート沖縄旅行動画免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージFX投資信託くりっく365アフィリエイト育毛剤FXホームページ制作デイトレードFXタイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島年末年始ハワイHawaii hotelsHawaii Activitiesbhhrホノルルマラソン
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行
無料ホームページ作成 - レンタルサーバー - 携帯ホームページ - ブログ - ホテル 予約 - タイムシェア - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - ハワイ 不動産 - プーケット ホテル