The Jakarta Project
The mighty Tomcat - Meow!

NetWare 上での Tomcat の手引き

Mike Anderson mmanders@novell.com

このドキュメントは、NetWare 上で Tomcat を動かすためのセットアップの仕方を説明します。 スタンドアロンでの Tomcat の実行、NetWare Enterprise Web Server との実行、NetWare 上の Apache との実行のための章が提供されています。 NetWare のための Web サーバコネクタの構築方法を説明している章もあります。 これらの多くが、Tomcat と Netscape の手引きmod_jk の使用方法( どちらも Gal Shachor shachor@il.ibm.com により記述されたものです)から複製され NetWare 独自の情報が追加されています。

目次

ドキュメントの表記方法と仮定

<tomcat_home> は、Tomcat のルートディレクトリです。 デフォルトでは、SYS: ボリュームのルートにあります。 (SYS:\jakarta-tomcat-3.2.1 もしくは SYS:\tomcat どのバージョンをダウンロードしたかに依存します)しかし任意のボリュームの任意の場所に置く事ができます。 インストールするためには、以下のサブディレクトリが必要です。
  1. <tomcat_home>\conf - 様様な設定ファイルを置きます
  2. <tomcat_home>\webapps - サンプルアプリケーションを含みます
  3. <tomcat_home>\bin - Webサーバコネクタやスタートアップスクリプトを置きます
本文書中のすべての例では, <tomcat_home> を SYS:\tomcat と記述します。

ワーカ は、Web サーバから仕事を受け取る Tomcat プロセスです。

テストされた構成

Tomcat とWeb サーバコネクタは以下の環境でテストされました。
  1. NetWare 5.1 と1.1.7b JVM または 1.2.2 JVM。
  2. NetWare 6 と 1.2.2 JVM。
コネクタは、ajp12 ワーカとajp13ワーカで両方の JVM と共にテストされました。

インストール

Tomcat のビルドは バイナリ配布として用意されています。 NetWare 用の Web サーバコネクタは Tomcat ビルドの netware/i386 ディレクトリに用意されています。 mod_jk.nlm ファイルが Apache 用のコネクタで、nsapi_rd.nlm ファイルが NetWare Enterprise Web Server 用、もし jni ワーカを 1.2.2 JVM で使うなら jni_conn.nlm がネイティブメソッドライブラリです。 一度、適切な zip ファイルをダウンロードして、NetWare サーバで展開していれば、 Tomcat をスタンドアロンモードで走らせることができます。 静的なコンテンツを提供している別の Web サーバと一緒に走らせるには、 Web サーバを適切に構成し必要なコネクタを適切なディレクトリにコピーする必要があります。
 

1. スタンドアロンでの Tomcat の実行

Tomcat をスタンドアロンで実行するには、一番簡単なのは Tomcat を起動するための NCF ファイルを作成することです。 サンプルの TOMCAT.NCF はこのようになります。

; これは TOMCAT を NetWare 上で起動するためのサンプル NCF ファイルです。
; TOMCAT_HOME 環境変数とjava コマンドラインでの tomcat.home の定義は、
; 実際に Tomcat をインストールしたディレクトリへと修正しなければいけません。

envset TOMCAT_HOME=SYS:\tomcat

envset TOMCAT_CLASSPATH=sys:\java\lib\classes.zip
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\classes
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\lib\ant.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\lib\jasper.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\lib\jaxp.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\lib\parser.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\lib\servlet.jar
envset TOMCAT_CLASSPATH=$TOMCAT_CLASSPATH;$TOMCAT_HOME\lib\webserver.jar

; 以下のコマンドラインは、自動的に閉じ(-nsac)、Tomcat と名づけられた (-snTomcat)
; コンソールスクリーンと共に Tomcat を開始します。そしてカレントディレクトリは
; TOMCAT_HOME に設定されます(-envCWD=$TOMCAT_HOME)。
java -nsac -snTomcat -envCWD=$TOMCAT_HOME -classpath $TOMCAT_CLASSPATH -Dtomcat.home=SYS:\tomcat org.apache.tomcat.startup.Tomcat %1

TOMCAT_HOME が正しいディレクトリをさしている事を確かめる必要がある事を (NCF Oファイルの)コメントは示しています。

この NCF ファイルを SYS:\System に置く事により、システムコンソール上で tomcat と打ち込めば Tomcat を開始できます。システムの起動時に自動的に Tomcat を開始するために autoexec.ncf にこれを追加する事もできます。 コマンドラインの最後の %1 により Tomcat をシャットダウンするために -stop パラメータを使う事もできます。
 

2. NetWare Enterprise Web Server との Tomcat の実行

NetWare Enterprise Web Server と一緒に Tomcat を実行するには、 nsapi_rd.nlm をダウンロードして NetWare サーバにコピーする必要があります。 適切な場所は<tomcat_home>\bin\netscape\netware\i386 です。 その後以下をSYS:\novonyx\suitespot\https-<servername>\config にある obj.conf ファイルに追加する必要もあるでしょう。 NetWare Enterprise Web Server は Tomcat に /servlet/* と /examples/* の URI と処理させます。
  1. もし現在 Novell Servlet Gateway が動作中なら、NetWare Web Manager を使って無効にします。
  2. Init セクションに追加します。

  3. Init fn="load-modules" funcs="jk_init,jk_service" shlib="sys:/tomcat/bin/netscape/netware/i386/nsapi_rd.nlm"
    Init fn="jk_init" worker_file="sys:/tomcat/conf/workers.properties" log_level="debug" log_file="sys:/tomcat/logs/nsapi.log"
  4. デフォルトのオブジェクト NameTrans セクションに追加します。

  5. NameTrans fn="assign-name" from="/servlet/*" name="Tomcat"
    NameTrans fn="assign-name" from="/examples/*" name="Tomcat"
  6. obj.conf ファイルの最後に以下を追加して新しい構成オブジェクトを作成します。

  7. <Object name=Tomcat>
    ObjectType fn="force-type" type="text/plain"
    Service fn="jk_service" worker="ajp12"
    </Object>
さあ NetWare Enterprise Web Server を停止して再起動しましょう。 Tomcat が動いてる事を確かめて下さい。 (すなわち Running Tomcat Standalone で言及した tomcat.ncf を起動し、 http://server:port/examples/ へアクセスできなければいけません) 追加の設定情報は、Tomcat Netscape HowTo にあります。

3. NetWare 上の Apache との Tomcat の実行

NetWare 上の Apache と一緒に Tomcat を実行するには、mod_jk.nlm をダウンロードし NetWare サーバにコピーする必要があります。 適切な場所は Apache のモジュールディレクトリです。 もし mod_jk.nlm をそこにコピーすれば、 mod_jk.conf-auto と呼ばれる基本設定ファイルは Tomcat の開始時に作成されます。 適切な URI を Apache から Tomcat にマップする Apache 設定指示子がデフォルトで用意されています。 SYS:/tomcat を tomcat がインストールされたディレクトリに置き換えて、以下の行を httpd.conf ファイルに追加するだけです。

Include "SYS:/tomcat/conf/mod_jk.conf-auto"

適切な設定指示子を mod_jk.conf-auto ファイルから httpd.conf ファイルにコピーするだけでもいいです。 追加の情報は mod_jk の使用方法を見てください。

NetWare 上で利用するための Tomcat の構築

Tomcat の Java 部分を構築するとこは、どんなプラットフォームでも同じです。 まずソース をダウンロードし、それを展開し、README ドキュメントを読みましょう。 JDK と構築に必要な他のツール ( AntJAXPJSSEも必要かも)を入手した後に、README で記述されている build バッチファイルを実行するだけです。 ネイティブコネクタを構築するには、MetroWerks CodeWarrior 5 かそれ以降、 GNU make (バージョン 3.78.1)WinSock 2 Developer Components for NetWareMicrosoft Platform SDK の WinSock 2 コンポーネント、SYS:\java\include\netware の JNI ヘッダ (Novell JVM for NetWare v1.1.7b もしくは v1.2.2をダウンロードしてインストールする必要があります)、 そしてNLM とC のための NetWare ライブラリが必要です。 いったんすべてのツールを揃って SDK が必要なら、 MetroWerks と NetWare SDK コンポーネントを D:\Tools(makefile 内でのデフォルト) のような共通のディレクトリ構造にインストールする事を推奨します。 次に makefile が仮定にマッチする MetroWerks コマンドラインツールのディレクトリ構造を作成します。 すると Tools ディレクトリ構造が以下のようになるでしょう。

D:\Tools
     |
     +CodeWarrior (MetroWerks CodeWarrior の基本ディレクトリ)
     |    |
     |    |
     |    +5.3   (これはオプションですが異なるバージョンの使用を容易にします)
     |        |
     |        +bin (CodeWarrior IDE バイナリ)
     |        |
     |       ... (すべての他の CodeWarrior ディレクトリ)
     |        |
     |        +Tools (コマンドラインツールの場所。 MW ディレクトリ構造を見よ)
     |        |
     |        +Novell Support (Novell 固有のファイルの場所。MW ディレクトリ構造を見よ)
     +mw
     |    |
     |    +5.3   (これはオプションですが異なるバージョンの使用を容易にします)
     |        |
     |        +bin (\Tools\CodeWarrior\Tools\Command Line Tools からmwccnlm.exe と mwldnlm.exe をコピー)
     |        |
     |        +include (\Tools\CodeWarrior\Novell Support\Metrowerks Support\Headers と
     |        |              \Tools\CodeWarrior\Novell Support\Metrowerks Support\Libraries\MSL C++\Include からすべてのファイルをコピー)
     |        +lib  (\Tools\CodeWarrior\Novell Support\Metrowerks Support\Libraries\Runtime から *.lib と *.obj をコピー)
     |
     +nwsdk (NetWare SDK コンポーネントのすべて。デフォルトインストールディレクトリを C:\Novell から D:\Tools に変更)
     |
     +jdk
         |
         +jdk-1_2_2 (JDK インストール)

ツールをセットアップすれば、以下のようにツールや SDK を指すように環境変数を定義できます。

環境変数名 説明
TOOLPATH ツールをインストールするベースパス。デフォルトは D:\Tools
JDKPATH jdk のベースパス。デフォルトは $(TOOLPATH)\jdk\jdk-1_2_2。 NetWare サーバの SYS:\java\include\netware ディレクトリから$(JDKPATH)\include\netware へ JNI ヘッダをコピー
NOVELLNDK NetWare SDK ファイルのベースパス。デフォルトは $(TOOLPATH)\nwsdk
METROWERKSPATH で定義した私のディレクトリ構造のベースパス。デフォルトは $(TOOLPATH)\mw\5.3
WINSOCK_INCDIR winsock ヘッダのベースパス。デフォルトは $(NOVELLNDK)\include\winsock。 Apache のコネクタのためだけに必要。
APACHE_SRC Apache ソースディレクトリのベースパス。デフォルトは d:\apache_1.3.17\src。 Apache のコネクタのためだけに必要。

GNUmake 実行ファイル (以下では gmake とします) を path の通ったディレクトリにコピーし、構築したいコネクタのディレクトリに移動します。 ツールが上記のようにセットアップされていれば、あとは APACHE_SRC 環境変数を適切なディレクトリに設定し、構築したいコネクタのメインディレクトリで gmake -f Makefile.nw とタイプするだけです。

[訳注: これは鰈崎義之が翻訳しました。 日本語訳に対するコメントは、jajakarta-report@nekoyanagi.com宛に送って下さい。]