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

15コンテキスト.xml

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

コンテキスト.xml

ここでは、Tomcatの各アプリケーション(コンテキスト)の動作を設定するコンテキスト.xmlについて解説します。

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

コンテキスト.xmlの概要

コンテキストとはTomcatで管理される一まとまりのアプリケーションのことを言います。コンテキストには一まとまりのアプリケーションの動作に必要なJSP、サーブレット、HTML、画像、jar、web.xmlなどが含まれます。通常$CATALINA_HOME\webappsディレクトリ配下に設置されます。

コンテキスト.xmlにはコンテキストの動作を設定します。これまではコンテキストに関する設定はserver.xmlで行っていました。Tomcat5からコンテキストに関する設定はコンテキスト.xmlで設定するように変更されました。

コンテキスト.xmlは$CATALINA_HOME\conf\[engine name]\[host name]ディレクトリ配下に作成します。[engine name]、[host name]はserver.xmlに設定されているengine名、host名です。デフォルトの設定は[engine name]がCatalina、[host name]がlocalhostです。コンテキスト.xmlのコンテキストの部分は作成するコンテキスト名が入ります。例えばコンテキスト名がjavaroadである場合はjavaroad.xmlになります。

コンテキストが上記の構成をとった場合、コンテキストの設定ファイルは$CATALINA_HOME\conf\Catalina\localhost\javaroad.xmlとなります。 コンテキストの具体的な設定例はJavaの道:Tomcat(プログラム配置・実行)にも記載されています。

コンテキスト.xmlの設定例

コンテキスト.xmlの設定例について解説します。いくつかのタグはserver.xml、コンテキスト.xmlの両方で指定できます。そのようなタグをコンテキスト.xmlで指定した場合はそのタグはserver.xmlのタグを上書きし、コンテキスト内の動作に適用されます。

server.xml、コンテキスト.xmlの両方で指定できるタグ

<Logger>, <Realm>, <Resource>, <ResourceParams>, <Valve>

※ その他にも両方で指定できるタグはありますが、コンテキスト.xml、server.xmlのどちらか一方での利用が想定されているため、ここでは省略します。

<!-- (1)Contextタグの設定 -->
<Context path="/javaroad"
        docBase="C:\Program Files\Apache Software Foundation
        \Tomcat 5.0\webapps\javaroad" debug="0">
    <!-- (2)Valveタグの設定 -->
    <Valve className="org.apache.catalina.valves.AccessLogValve"
            directory="logs/AccessLog" />
</Context> 
  1. (1)

    <Context>タグを設定しています。path属性にブラウザから参照されるPATH名を、docBase属性にコンテキストを構成するアプリケーションファイル群を設置するPATH名を指定しています。このPATH名は絶対PATH名でも指定できますし、<Host>タグのappBase属性からの参照PATH名でも指定できます。debug属性の0はデバッグレベルが0(最小)であることを表します。

    ※ Tomcatの最新バージョンでは、docBase属性で指定するPATH名がappBaseの配下にある場合は、path属性、docBase属性とも明示的に指定する必要はありません。指定した場合は、Tomcatのログに警告文(警告: A docBase [docBaseのパス名] inside the host appBase has been specified, and will be ignored.)が生成されます。appBaseはTomcatのデフォルトの設定では$CATALINA_HOME/webappsです。

  2. (2)<Valve>タグでアクセスログ生成の設定をしています。コンテキストへのアクセスログを生成します。directory属性はアクセスログが生成される場所を指定します。$CATALINA_HOMEからの参照PATH名で、指定できます。

<Context>タグ

内容 コンテキスト.xmlで最上位のタグです。コンテキスト.xmlで一つのみ存在します。
要素の数 1つのみ
サブ要素 <Loader>, <Logger>, <Manager>, <Realm>, <Resources>, <Resource>, <ResourceParams>, <Valve>
詳細解説 Tomcatドキュメント:The Context Container

<Loader>タグ

内容 クラスを見つけ、ロードするクラスローダをデフォルトのものから変更したい場合に使用します。
要素の数 0または1
サブ要素 無し
詳細解説 Tomcatドキュメント:The Loader Component

<Logger>タグ

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

<Manager>タグ

内容 HTTPセッションをファイル、データベースに保存する、保持するHTTPセッション数を指定するなどのセッションマネージャを使用する場合に指定します。
要素の数 0または1
サブ要素 <Store>
詳細解説 Tomcatドキュメント:The Manager Component

<Store>タグ

内容 セッションマネージャで管理されるHTTPセッションの保存先(ファイル、データベース)を指定します。
要素の数 0または1
サブ要素 無し
詳細解説 Tomcatドキュメント:The Manager Component

<Realm>タグ

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

<Resources>タグ

内容 HTML、画像などの静的なリソースを処理するカスタムなJavaクラスを指定します。
要素の数 0または1
サブ要素 無し
詳細解説 Tomcatドキュメント:The Resources Component

<Resource>タグ

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

<ResourceParams>タグ

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

<Valve>タグ

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

15コンテキスト.xml