Tomcatの初期構成

Windows用のApacheTomcat8.5.16のディレクトリ階層及びファイルについて説明します。

本書では、インストール(Windows)の手順でTomcatをインストールしていることを前提とします。

C:¥developer¥webap¥tomcat¥tomcat_8.5.16以下の構成は以下となります。

名称 説明
bin Tomcatの起動用exe,スクリプト,バッチを管理します。
conf Tomcatの起動時に読み込む設定ファイルを管理します。
Tomcatを制御するの主な設定ファイルは、server.xmlです。
lib 共有ライブラリファイル(*.jar)を管理します。 このディレクトリに管理した*.jarファイルは、全てのWebアプリケーション(サーバーサイドJava)からimport節で利用できます。 JDBCの接続用のJDBCドライバーを格納するのに適しています。
logs アクセスログ、エラーログ、実行ログなどのログファイルを管理します。
temp 一時ファイルを格納します。
System.getProperty("java.io.tmpdir")を
サーバーサイドJavaから実行することで本ディレクトリのパスが取得できます。
webapps デフォルトのコンテキストルート
Webアプリケーションを配備するディレクトリです。
アプリケーション名.warを本ディレクトリに格納することで
TomcatにWebアプリケーションがロードされます。
work JSPファイルをサーブレットに解析した結果の
JavaソースとクラスファイルをWebアプリケーション別に格納されます。

ログの出力先logs、設定ファイル格納先conf、コンテキストルートのwebappsを抑えておけばWebアプリケーションを実行するには十分です。

binディレクトリ

Windows用Tomcat8.5系のbinディレクトリについて以下に説明します。

名称 説明
bootstrap.jar Tomcatの起動用Javaライブラリです。catalina.bat,service.bat,tool-wrapper.batから指定され各種バッチ実行時に梱包されているorg.apache.catalina.startup.Bootstrapが実行されます。 利用者がこのjarファイルを直接操作することはまずありません。
catalina.bat Tomcatを起動させるための最もコアなバッチファイル(古いバージョンから伝わる起動用バッチ)。 Tomcatを実行する場合には、startup.batを利用して下さい。
configtest.bat confディレクトリ以下に格納された設定ファイル各種の妥当性チェックを実施します。
Tomcatを仮起動するためにTomcatが停止している必要があります。
digest.bat 標準Realmで指定するユーザ名に対するパスワードを暗号化するためのバッチです。 server.xmlファイルなどの設定ファイルにデータベースの接続ユーザを定義する場合ときに ユーザに対するパスワードを暗号化することでセキュリティ要件を高める事が目的です。
service.bat TomcatをWindowsのサービスとして登録・削除します。
service.bat install [サービス名] :サービスの登録
service.bat remove [サービス名] :サービスの削除
setclasspath.bat 環境変数設定用バッチファイル。
catalina.bat及びtool-wrapper.batからサブバッチとして実行されます。
shutdown.bat Tomcatプロセスの停止用バッチファイル
startup.bat Tomcatプロセスの起動用バッチファイル
tomcat8.exe WindowsサービスとしてTomcat 8を実行するためのサービスアプリケーションです
tomcat8w.exe Tomcatサービスを監視および設定するためのGUIアプリケーションです。
tomcat-juli.jar Apache Tomcatの内部ログはJULIを使用しています。
catalina.bat及びtool-wrapper.bat実行時にクラスパスに本jarファイルが指定されます。
tool-wrapper.bath これは、環境変数を設定するために使用できる一般的なTomcatコマンドラインツールラッパースクリプトです。 設定されたクラスパスにある完全修飾クラスのmainメソッドを呼び出します。 これはdigest.batによって内部的に使用されます。

confディレクトリ

confディレクトリは、設定ファイルを格納しているディレクトリです。 confディレクトリに格納されている各種ファイルの役割や主な設定箇所を理解することがWebアプリケーションサーバーTomcatの理解に繋がります。

名称 説明
catalina.policy Tomcatの起動時のオプション(catalina.bat run -security)で起動するセキュリティ・マネージャーが管理する Javaに対するセキュリティ制御の設定ファイル。 本設定ファイルを設定することで悪意のあるapplet,サーバーサイドJavaのプログラムの抑制を行います。
catalina.properties Tomcatに特化したプロパティファイル。
サーバーサイドJavaからSystem.getProperty("ファイル内で定義された値")で取得可能
context.xml 全てのWebアプリケーションに適用されるデフォルト・コンテキスト
【コンテキスト評価順:1】
jaspic-providers.xml JavaTM Authentication Service Provider Interface for Containers用の設定ファイル
Webコンテナに対してサードパーティの認証システムを連携する機能
例えばGoogle OAuthを利用してGoogleアカウント所有者のみシステムを利用可能とする場合には、本設定ファイルに Google OAuthの設定を明記し、lib配下に対応するjarファイルを格納する。 デフォルトでは、何も指定されていません。
jaspic-providers.xsd jaspic-providers.xmlファイルの構文を定義したxsdファイル
logging.properties Tomcatの起動、エラー、アクセスログの設定ファイル。フォーマットは、java.util.loggingを利用
server.xml Tomcatの実行ポート番号、Apacheの連携設定、バーチャルホスト設定などTomcatの動作を決める主設定ファイル
tomcat-users.xml Tomcat Webアプリケーションマネージャ(http://localhost:8080/manager)の管理者アカウント管理用ファイル
tomcat-users.xsd tomcat-users.xmlファイルの構文を定義したxsdファイル
web.xml 全てのコンテキスト(Webアプリケーション)に適用される配備記述子(Deployment Descriptor)
【web.xml評価順:1】
個別のコンテキストを操作する場合には、conf/エンジン名/ホスト名/コンテキスト名.xml又は
warファイルに梱包したWEB-INF/web.xmlで指定します。

confディレクトリで重要な点は、conf/context.xmlとconf/web.xmlは全てのコンテキスト(Webアプリケーション)に適用される共通のファイルである点です。

Tomcatサーバの動作を操作する起点となるファイルは、server.xmlファイルになります。

Webアプリケーション動作不良時の対応

ApacheTomcatにアプリケーションを配備したのに状態が古かったり、エラーが発生する場合には、 開発環境のサーバーであることを前提にTomcatを停止後以下のディレクトリ内を全て削除します。(初期化します。)

  • workディレクトリ配下
  • tempディレクトリ配下

Tomcatサーバーを再起動して対象のWebアプリケーションにアクセスして動作確認をします。