Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。

server.xml

ここでは、Tomcatの主要な設定ファイルであるserver.xmlについて解説します。

実行環境
  • ・WindowsXP Home Edition
  • ・Tomcat 5.0.18
  • ・J2SDK 1.4.2_04

server.xmlの概要

server.xmlとは、Tomcatサーバの動作を定義する設定ファイルです。他にも設定ファイルはありますが、Tomcatに関する主要な設定はこのファイルで行います。server.xmlは$CATALINA_HOME\confディレクトリ配下にあります。

server.xmlの設定例

server.xmlの設定例について解説します。基本ルールとして、ネストされたタグの設定内容は親タグの設定内容を上書きします。

server.xmlの設定例

設定例の解説にはTomcatにあらかじめ用意されているserver.xmlの最小設定例を記載したファイルserver-minimal.xmlを修正したものです。実際の設定時にはserver-minimal.xmlに必要な設定を追加し、server.xmlにリネイムして使用することをお勧めします。server-minamal.xmlは$CATALINA_HOME\confディレクトリ配下にあります。

<!-- (1)Serverタグの設定 -->
<Server port="8005" shutdown="SHUTDOWN">
    <!-- (2)Serviceタグの設定 -->
    <Service name="Catalina">
        <!-- (3)Connectorタグの設定 -->
        <Connector port="8080" />
        <!-- (4)Engineタグの設定 -->
        <Engine name="Catalina" defaulthost="localhost">
            <!-- (5)Loggerタグの設定 -->
            <Logger classname="org.apache.catalina.logger.FileLogger" />
            <!-- (6)Hostタグの設定 -->
            <Host name="localhost" appbase="webapps">
                <!-- (7)ネストされたLoggerタグの設定 -->
                <Logger classname="org.apache.catalina.logger.FileLogger" />
            </Host>
        </Engine>
    </Service>
</Server>
  1. (1)<Server>タグの設定です。<Server>タグはserver.xmlファイルでただ一つ存在する最上位のタグです。ポート番号8005を監視し、Tomcatを停止するためのSHUTDOWNコマンドを受け付ける設定を表しています。
  2. (2)<Connector>タグと<Engine>タグをグループ化する<Service>タグの設定です。サービス名がCatalinaであることを表しています。
  3. (3)ポート番号8080でクライアントからのリクエストを受け付けることを表しています。
  4. (4)Tomcatエンジンの設定です。エンジン名がCatalina、リクエストホスト先がserver.xmlにない場合の接続先がlocalhostであることを表しています。
  5. (5)エラーメッセージを出力する<Logger>タグの設定です。classname属性に指定されているFileLoggerクラスはファイルにエラーログを生成することを表しています(Tomcat5.5からは、<Logger>タグではなく、logging.propertiesファイルで行うようになりました)。
  6. (6)クライアントからリクエストを受け付けるホスト名がlocalhostであることを表しています。
  7. (7)<Host>タグ内の<Logger>タグの設定です。ホスト名localhostに限定したエラーログが対象になります。classname属性に指定されているSystemOutLoggerクラスは標準出力にエラーログを生成することを表します。localhostに対する処理を除くTomcatエンジンのエラーログは⑤の<Logger>タグで処理されます。

server.xmlの設定タグ

server.xmlで設定できるタグを以下に記載します。各タグで設定できる属性については解説を省略します。詳細解説を参照してください。

server.xmlの設定タグ

<Server>タグ

内容 server.xmlで最上位のタグです。server.xmlで一つのみ存在します。
要素の数 1つのみ
サブ要素 <Service>, <GlobalNamingResources>
詳細解説 Tomcatドキュメント:The Server Component

<GlobalNamingResources>タグ

内容 <Server>タグのサブ要素として設定でき、JNDIリソースの設定を行います。JNDIリソースの詳細設定は<Resource>タグ、<ResourceParams>タグで行います。
要素の数 0または1
サブ要素 <Environment>, <Resource>, <ResourceParams>
詳細解説 Tomcatドキュメント:The GlobalNamingResources Component

<Environment>タグ

内容 WebアプリケーションがJNDIコンテキストを使用して取得できる環境エントリを指定します。
要素の数 0以上
サブ要素 無し
詳細解説 Tomcatドキュメント:The GlobalNamingResources Component

<Resource>タグ

内容 JNDIリソースの名前、基本動作を指定します。
要素の数 0以上
サブ要素 無し
詳細解説 Javaの道:Tomcat(JDBC接続)
Tomcatドキュメント:The GlobalNamingResources Component

<ResourceParams>タグ

内容 JNDIリソースの詳細動作を指定します。
要素の数 0以上
サブ要素 無し
詳細解説 Javaの道:Tomcat(JDBC接続)
Tomcatドキュメント:The GlobalNamingResources Component

<Service>タグ

内容 <Connector>タグと、<Engine>タグをグループ化します。
要素の数 1つ以上
サブ要素 <Connector>, <Engine>
詳細解説 Tomcatドキュメント:The Service Component

<Connector>タグ

内容 クライアントからのリクエストを受け付けるコネクタを設定します。HTTP、HTTPS、AJPなどを設定できます。このタグで設定されたポート番号を使用してクライアントとデータを送受信します。
要素の数 1つ以上
サブ要素 <Factory>
詳細解説 Tomcatドキュメント:The Coyote HTTP/1.1 Connector
Tomcatドキュメント:The JK 2 Connector

<Engine>タグ

内容 Tomcatエンジンを表します。<Connector>タグで設定されたポートから送信されてくるリクエストを処理します。
要素の数 1つのみ
サブ要素 <Host>, <DefaultContext>, <Logger>, <Realm>, <Valve>, <Listener>
詳細解説 Tomcatドキュメント:The Engine Container

<Host>タグ

内容 Tomcatエンジンで処理される仮想ホストを設定します。www.abc.co.jp、www.xyz.co.jpは2つの仮想ホストとみなすことができます。
要素の数 1つ以上
サブ要素 <DefaultContext>, <Logger>, <Realm>, <Valve>, <Listener>
詳細解説 Tomcatドキュメント:The Host Container

<DefaultContext>タグ

内容 すべてのコンテキストに適用される振る舞いを設定します。個々のコンテキストの設定は<Context>タグで行います。
要素の数 0または1
サブ要素 <Loader>, <Resource>, <ResourceParams>
詳細解説 Tomcatドキュメント:The DefaultContext Component

<Logger>タグ

内容 Tomcatエンジン、Javaアプリケーションが生成するエラーログの生成方法を設定します(Tomcat5.5からは、<Logger>タグではなく、logging.propertiesファイルで行うようになりました)。
要素の数 0または1
サブ要素 無し
詳細解説 Tomcatドキュメント:The Logger Component

<Realm>タグ

内容 Tomcatエンジンによって提供される認証方法を設定します。認証はID、Password、ロールによって管理されます。
要素の数 0または1
サブ要素 無し
詳細解説 Javaの道:Tomcat(BASIC認証)
Javaの道:Tomcat(FORM認証)
Javaの道:Tomcat(JDBCレルムによるFORM認証)
Tomcatドキュメント:The Realm Component

<Valve>タグ

内容 <Engine>タグ、<Host>タグ、<Context>タグのサブ要素として設定でき、クライアントに対する送受信データをフィルタし、処理を行います。アクセスログ生成、シングルサインオン、IPアドレス・ホスト名に対するアクセス制御、受信データのダンプを行います。
要素の数 0以上
サブ要素 無し
詳細解説 Javaの道:Tomcat(アクセスログ)
Javaの道:Tomcat(アクセス制限)
Tomcatドキュメント:The Valve Component

<Listener>タグ

内容 Tomcatエンジンの起動、停止を監視するJavaクラスを指定します。
要素の数 0以上
サブ要素 無し
詳細解説 Tomcatドキュメント:The Engine Container
Tomcatドキュメント:The Host Container

14server.xml