Windows 2000のIIS 5.0でServletとJSPを使う


[更新履歴]
2001/09/24 初版
2001/04/25 「IISで使うための修正」で、server.xml修正時の注意を追加。
2002/02/10 「レジストリの設定」で、extension_uriをextension_uriとしていた誤りを修正。

必要なもの

IIS 5.0
 Windows 2000に付属。
 インストールを行うには、「コントロールパネル」→「アプリケーションの追加と削除」→「Windowsコンポーネントの追加と削除」から「インターネット インフォメーション サービス(IIS)」を選択する。必ず最新のサービスパックとパッチを適用した状態で使用すること。例えば本稿執筆時点では、Windows 2000 Service Pack 2を適用し、さらにMS01-044を適用。
Java 2 SDK
 Java2 SDKの最新バージョンをhttp://java.sun.com/からダウンロードする。本稿執筆時点ではThe JavaTM 2 Platform, Standard Edition v1.3.1_01が最新。
Tomcat
 TomcatのWin32バイナリをhttp://jakarta.apache.org/tomcat/index.htmlからダウンロードする。Win32バイナリのファイル名はjakarta-tomcat-*.zipとなっている。私の場合はjakarta-tomcat-3.2.3.zipをダウンロードした。
isapi_redirect.dll (ISAPI redirector server plugin)
 IISが受け取ったリクエストをTomcatにリダイレクトするためのモジュール。
 jakarta-tomcat-*.zipを取得したディレクトリの下のwin32\i386ディレクトリにあるはず。
jk_nt_service.exe
 Tomcatをサービスとして登録するためのプログラム。  jakarta-tomcat-*.zipを取得したディレクトリの下のwin32\i386ディレクトリにあるはず。

準備

 IIS 5とJavaが動く状態にしておく。

チェックポイント

Tomcatのインストール

 ダウンロードしたTomcatの圧縮ファイル、jakarta-tomcat-*.zip
  1. 圧縮ファイルの展開

  2.  ダウンロードしたTomcatの圧縮ファイル、jakarta-tomcat-*.zipをc:\などに展開する。jakarta-tomcat-3.2.3といった名称のディレクトリができる。必要があればjakarta-tomcatなどにリネームしておく。
  3. 環境変数の設定

  4.  付属ドキュメントに従って環境変数を設定する。設定する内容は以下の通り。
     なお、環境変数の設定は「コントロール パネル」→「システム」→「詳細」→「環境変数」から行う。
    環境変数名 設定値
    TOMCAT_HOME Tomcatを展開したディレクトリ名(例:c:\jakarta-tomcat)
    JAVA_HOME Javaがインストールされているディレクトリ名(例:C:\jdk1.3.0_02)
  5. テスト

  6.  ここまでの手順がうまくいっているか確認してみる。
     コマンドプロンプトで%TOMCAT_HOME%\bin\startup.batを実行する。新しいコンソールウィンドウが出来て以下のようなメッセージが表示されているはずである。
    2001-09-24 15:16:09 - ContextManager: Adding context Ctx( /examples )
    2001-09-24 15:16:09 - ContextManager: Adding context Ctx( /admin )
    Starting tomcat. Check logs/tomcat.log for error messages
    2001-09-24 15:16:09 - ContextManager: Adding context Ctx(  )
    2001-09-24 15:16:09 - ContextManager: Adding context Ctx( /test )
    2001-09-24 15:16:09 - PoolTcpConnector: Starting HttpConnectionHandler on 8080
    2001-09-24 15:16:09 - PoolTcpConnector: Starting Ajp12ConnectionHandler on 8007
    
     次にブラウザで http://localhost:8080/を開く。以下のようなTomcatのサンプルページが表示されるはず。このページからリンクが設定されているJSPやServletが動作すればOK。



     もしうまくいかない場合は以下の点を確認してみる。

IISで使うための設定

  1. server.xmlの変更

  2.  IISを使うのでTomcatをwebサーバとして使う必要はない。server.xmlの以下の太字の部分をコメントアウトすることによってHTTPサーバを動かさない設定にする。
    <!-- Normal HTTP -->
        <Connector className="org.apache.tomcat.service.PoolTcpConnector">
            <Parameter name="handler" 
                value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
            <Parameter name="port" 
                value="8080"/>
        </Connector>
    
    [注意]
    コメントのネストは許されないので、<!-- Normal HTTP -->の部分も含めてまとめてコメントアウトするとserver.xml読み込み時にエラーとなりTomcatが起動しなくなる。

  3. isapi_redirect.dllをコピー

  4.  %TOMCAT_HOME%\binの下にディレクトリwin32\iisを作成し、isapi_redirect.dllをコピー。


  5. レジストリの設定

  6.  レジストリエディタ(regedit.exe)を起動し、HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0 というキーを作成する。そのキーに以下の文字列(REG_SZ)値を設定する。c:\jakarta-tomcatの部分はインストール状況に応じて読み替えること。
    extension_uri /jakarta/isapi_redirect.dll
    log_file c:\jakarta-tomcat\logs\isapi.log
    log_level info
    worker_file c:\jakarta-tomcat\conf\workers.properties
    worker_mount_file c:\jakarta-tomcat\conf\uriworkermap.properties



  7. IISの仮想ディレクトリ追加
     インターネットサービスマネージャを使って、c:\jakarta-tomcat\bin\win32\iisを仮想ディレクトリ/jakartaとして参照できるよう設定。
     「仮想ディレクトリの作成ウィザード」では以下のように入力する。

    エイリアス jakarta
    ディレクトリ C:\jakarta-tomcat\bin\win32\iis
    アクセス許可 読み取り、ASP等のスクリプトを実行する、ISAPIアプリケーションやCGI等を実行する

  8. ISAPIフィルタの登録

  9.  isapi_redirect.dllをISAPIフィルタとしてインターネットサービスマネージャで登録する。「規定のwebサイト」からプロパティを開き、「ISAPIフィルタ」のタブから「追加」ボタンを押下。
     フィルタ名は何でも良い。実行ファイルとしてisapi_redirect.dllを指定する。


     追加後は以下のように表示される。


  10. テスト

  11.  ブラウザでhttp://localhost/examples/jsp/index.htmlを開いてみる。JSPのサンプル一覧が表示できれば成功。

Tomcatをサービスとして起動

 %TOMCAT_HOME%\bin\startup.batを実行して起動する方法では、Windows 2000にログオンしなければTomcatを使うことが出来ない。そこで、Tomcatをサービスとして登録しシステム起動にともないTomcatも起動するよう設定する。
  1. jk_nt_serviceをコピー

  2.  ダウンロードしたjk_nt_service.exeを%TOMCAT_HOME%\binにコピーする。

  3. wrapper.propertiesを編集

  4.  %TOMCAT_HOME%conf\wrapper.propertiesファイルをエディタで開き、wrapper.tomcat_homeとwrapper_java_homeをそれぞれ%TOMCAT_HOME%、%JAVA_HOME%の値に変更する。
     %TOMCAT_HOME%と%JAVA_HOME%の値はコマンドプロンプトから echo %TOMCAT_HOME% などとすると確認できる。

  5. サービス登録

  6.  コマンドプロンプトを開き、カレントディレクトリを%TOMCAT_HOME%\binに移動しjk_nt_service.exeを実行してサービスとして登録。
    jk_nt_service -i jakarta-tomcat ..\conf\wrapper.properties
    
  7. サービスを自動起動に設定

  8.  「コントロールパネル」→「管理ツール」→「サービス」を開き、サービス名「jakarta-tomcat」が登録されているか確認。
     登録されていれば、jakarta-tomcatのプロパティを開き、「スタートアップの種類」を「自動」に設定。

  9. テスト

  10.  システムを再起動し、ブラウザでhttp://localhost/examples/jsp/を開く。サンプルページが表示されればOK。

前田 剛 <g_maeda@mars.dti.ne.jp>