Tomcat インストール

Apache Tomcat とは,Java Servlet, JavaServer Page の実装です. The Apache Jakarta Project の成果物です.

Apache Tomcat バージョン 5.5 のインストールとテスト実行を行う.

特記事項: Tomcat バージョン 6.0 では、Apache MyFaces 1.1 系列と共存できない(こればバグでは無く、規格上の 仕様)

関連する外部ページ http://www.searchman.info/java_eclipse/1100.html

あらかじめ決めておく事項

Tomcat インストールディレクトリを決めておくこと。 好きに決めていいですが, 半角文字でスペースを含まないこと. この資料では,次のように書く.

手順

  1. SourceForge の XAPMM ページを開く http://sourceforge.net/project/showfiles.php?group_id=61776
  2. Windows アドオンのページにジャンプ

    今のページの「Latest File Releases」のところにある表の中の 「Windows add-ons」をクリック.

  3. ファイルの選択

    Tomcat 5.5 系列の最新バージョンを使いたいので、 「xampp-win32-tomcat-addons-5.5.20-2.2.4-installer.exe」をクリック.

  4. ミラーサイトの選択

    ミラーサイトを選択したいので、 「Select a different mirror?」をクリック.

  5. 日本のサイトを選択

    日本のミラーサイトを選択したいので、 「Asic」のところにある 「..., Japan」をチェックし、 「OK」をクリック.

  6. ダウンロード開始

Apache Tomcat コネクタの設定

【関連する外部ページ】

Apache Tomcat に内蔵の HTTP サーバではなく,Apache HTTP サーバApache Tomcat を連携させて動かします. そのためには,「コネクタ」と呼ばれるプログラムを使う. Apache Tomcat にはすでに主要ないくつかのコネクタが搭載済みです. Apache HTTP サーバ側には,コネクタの設定を行う必要がある。 コネクタにはいくつか種類がありますが、 最善だと判断される mod_proxy_ajp モジュールを使う。

お断り

Apache HTTP サーバのインストールについての記述は、別の Webページ に移しました.

jk, jk2 コネクタについての記述は、別の Webページ に移しました

準備事項

Aapahe HTTP サーバのインストール が済んでいること.

Tomcat インストールとテスト実行 が済んでいること.

Apache の httpd.conf ファイルの場所と,Tomcat インストールディレクトリを調べておくこと。この資料では,次のように書く.

Apache mod_proxy_ajp モジュールの設定

C:\Program Files\Apache Group\Apache Software Foundation\Apache2.2\confにあるhttpd.conf に次のような2行があるので書き換える

【変更前】
# LoadModule proxy_module modules/mod_proxy.so
# LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
【変更後】
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

httpd.conf の末尾に、次の1行を書き加える。 これは、tomcat 関係の設定を httpd.conf では無く、 conf/extra/httpd-proxy.conf にまとめて書きたいための設定。

Include conf/extra/httpd-proxy.conf

Tomcat での 8080 ポートの抑止

C:\tomcat55\conf\server.xml 内にある port="8080" についての記述をコメ ントにする。 これで、Tomcat と 8080 ポートで通信することはできなくなり、 Apache 経由での Tomcat との通信が許されることになる。

【変更前】
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
【変更後】
<!--
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->

テスト実行

Tomcat に付属のサンプルファイルを使ってテスト

  1. conf/extra/httpd-proxy.conf の設定 Order と Allow の行は、「127.0.0.1」からのアクセスだけを許すという設定です。
    <Location /servlet-examples/>
        ProxyPass ajp://localhost:8009/servlet-examples/
        Order allow,deny
        Allow from 127.0.0.1
    </Location>
    
  2. Tomcat の再起動:

    C:\tomcat55\bin\tomcat5w.exe を使用して、Tomcat を再起動する

  3. apache httpd の再起動:

    httpd.conf を書き換えたので、再起動が必要。

  4. 下記の URL を使い、examples/servlets のページを開く.

    「:8080」を付けていないので、Tomcat に直接アクセスするのでなく、Web サー バにアクセスしていることになる。

    http://localhost/examples/servlets

(オプション) リクエストについての設定

今後、Tomcat の c:\tomcat55\webapps\WEB-INF\classes\ ディレクトリには、Java プログラムファイルが多数置かれることになる。 Web の http://ほにゃらら、という URL へのアクセスがあると、これらクラスの doGet メソッドが起動されるという仕組みになっている。 そのために、URL へのリクエストを、Tomcat 側のどこのディレクト リに飛ばすかを、個々の URL ごとに設定することになる。その設定 を行ってみる(なお、Tomcat 側のどこのディレクトリと、クラスとのマッピングは、 Tomcat の web.xml の設定。混同しないこと)。

ここでは、試しに、 http://localhost/hello に対するアクセスを、Tomcat 側の hello に飛ばすように設定してみます。

conf/extra/httpd-proxy.conf を次のように書く。 Order と Allow の行は、「127.0.0.1」からのアクセスだけを許すという設定です。

<Location /hello/>
    ProxyPass ajp://localhost:8009/hello/
    Order allow,deny
    Allow from 127.0.0.1
</Location>

上記の設定をテストするためには、 Tomcat のプログラム の Web ページに記載した HelloWorldExample.java プログラムを参考にして ください。

httpd.conf を書き換えたので、apahce httpd をリスタートすること。