次のページ 前のページ 目次へ

4. Java CGI プログラムの実行

4.1 CGI モデルの下で Java を実行する際の障害

WWW サーバから Java のプログラムを実行する際には 2つの大きな問題があり ます:

Java のプログラムは普通の実行ファイルのようには実行できない

Java のプログラムを実行するためには,コマンドライン上でJava ランタイム・ インタプリタを実行し,これに初期クラス(実行するプログラム)を与えなけれ ばなりません. ところが,HTML の FORM を使う場合,WWW サーバにコマンドラインを教える ことはできません.

Java は環境変数にアクセスする一般的な方法を持たない

Java のプログラムが必要とする環境変数は,明示的に渡してやらなければな りません. C言語のgetenv()関数のような方法はありません.

4.2 Java CGI プログラムの実行による問題の解決

これらの問題を解決するため,Java インタプリタが必要とする情報を与える ための CGI シェルスクリプトを作りました.

java.cgi スクリプト

このシェルスクリプトは HTTP デーモンと 実行する Java CGI プログラムの やりとりを管理します. このスクリプトは,まず実行するプログラムの名前をサーバが与えたデータか ら展開します. 次に全ての環境変数をテンポラリファイルに集めます. それから,環境変数についての情報ファイルの名前とプログラムの名前をコマ ンドラインに指定してJava インタプリタを実行します.

ローカルパスについての方針の決定 の節で設定およびインストールされています.

HTML の FORM からの java.cgi の起動

Java CGI を使う FORM では以下のように FORM のアクションを指定します:

<form action="/cgi-bin/java.cgi/CGI_Test" method="POST">
ここで,/cgi-bin/はローカルの CGI ディレクトリであり, java.cgiはWWW上での Java の実行を可能にする Java フロントエンド です.そして,CGI_Testは実行する Java プログラムの名前の例です.


次のページ 前のページ 目次へ