|
Wapperがアプリケーションを起動できるようにWapperの設定を変更する前に、
通常使う完全なJavaコマンドを知っておく必要があります。
ほとんどのアプリケーションでは、バッチファイルを活用し、実際のコマンドラインを操作します。
一般的に、ほとんどのバッチファイルは、かなり重すぎたりで扱いにくい傾向にありますが、
実際のところ、Wrapperの優れた能力により、
それらのバッチファイルと無関係に動かすことができるのも、Wrapperメリットの一つなのです。
Tomcatは、「bin」ディレクトリーの中にある
「startup.bat」と呼ばれるバッチファイルを使ってTomcatを起動し、
「shutdown.bat」と呼ばれるバッチファイルを使ってシャットダウンします。
まずカレント・ディレクトリーを「bin」ディレクトリーへ変更して、そこから起動します。
「startup.bat」をエディターで開いてみると、気づくと思いますが、
実は、Javaはこのバッチファイルによって起動されているわけではないのです。
実際のところ、「catalina.bat」という名前のバッチファイルが呼び出されています。
Tomcatのスクリプトはとても高度にできていて、ユーザーがコマンドラインから多様な設定がでいるようになっています。
Wrapperで利用したりキャプチャしたりするコマンドラインは、
実際にはそういったコンフィギュレーションの1つのスナップショットなのです。
具体例をあげてみると、稼働時には、スタートアップ・スクリプトにも
シャットダウン・スクリプトにも、パラメーターが渡されていません。
「catalina.bat」をエディターで開いて、一番下までスクロールしてみると、
Javaを起動する4行のラインが見えます。
デフォルトのまま利用しており、最初のラインが使われます。注目するラインは、以下のとおりです:
(実際のコマンドはとても長いので抜粋しています)
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" ...
|
大多数のスクリプトには、システム・スペック情報を収集して、
その情報を環境変数の中に格納するタスク機能を備えています。
上記の行を明記することにより、収集した全ての情報を最終のJavaコマンドへと拡張させ、
それでアプリケーションを起動させることになります。
そのバッチファイルのソースを見れば分かるとおり、
複雑なスクリプトで高機能を備えたものだと感謝してもらえたり、
複雑なスクリプトを書く面倒から完全に免れられる喜びなど、
皆様の様々な希望を叶えているものだろうと、私達は願っています。
Wrapperの設定で、本当に必要な個所は、その最後の拡張コマンドラインなのです。
スクリプト全体を読みこなしたり、理解しようと試みるよりは、
むしろ、ちょっとした簡単な小細工をしかけることで、
コンソールで最終コマンドラインを表示させることができます。
「catalina.bat」バッチファイルを編集して、上記の行の最初に「ECHO 」を追記してください。
そうすると、以下のようになるはずです:
(画面に収まるようにラインを抜粋しています)
ECHO %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" ...
|
今、そのバッチファイルを再始動すると、コンソールに下記のようなものが表示されるでしょう
(出力結果は全て一行で表示):
start "Tomcat" "D:\Sun\j2sdk1.4.0_03\bin\java" -Djava.endorsed.dirs="..\bin;..\common\endorsed"
-classpath "D:\Sun\j2sdk1.4.0_03\lib\tools.jar;..\bin\bootstrap.jar" -Dcatalina.base=".."
-Dcatalina.home=".." -Djava.io.tmpdir="..\temp" org.apache.catalina.startup.Bootstrap start
|
上記の「startup.bat」同様に、
「shutdown.bat」バッチファイルにも同じ手順を繰り返してください。
今、単純にバッチファイルを始動してみると、下記の出力が得られ、驚くかもしれませんが、
これは、パラメーターを変更するだけで、
「startup.bat」と「shutdown.bat」の両者とも
「catalina.bat」バッチファイルを呼び出しているためです。
"D:\Sun\j2sdk1.4.0_03\bin\java" -Djava.endorsed.dirs="..\bin;..\common\endorsed"
-classpath "D:\Sun\j2sdk1.4.0_03\lib\tools.jar;..\bin\bootstrap.jar" -Dcatalina.base=".."
-Dcatalina.home=".." -Djava.io.tmpdir="..\temp" org.apache.catalina.startup.Bootstrap stop
|
スタートアップ・ラインの初めにある「start "Tomcat"」以外では、
2つのコマンドはほとんど同等のものです。
唯一の違いは、最後にメイン・クラスへ渡されたパラーメーターです。
コマンドの「start "Tomcat"」部分は、コンソールにTomcatを埋め込むだけに利用されています。
これはWrapperの利用に影響がないため、ここでの以降の事例説明では、コマンド部を無視することにします。
また、Wrapperは、ビルドするJava コマンドラインのエレメンツの引用も扱いますので、
下記のコンフィギュレーション・ファイル「wrapper.conf」へ引き継ぐ必要はありません。
|