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

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 インタプリタを実行します。

java.cgiスクリプトは、 ローカルパスについての方針の決定 の節で設定及びインストールされています。

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 プログラムの名前の例です。


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