コンテンツ

目次

一般

Apache Tomcat® のバージョン間の移行またはアップグレードに共通の考慮事項については、まず一般的な移行ガイドページをお読みください。

5.5.x から 6.0.x への移行

このセクションでは、アップグレード時に下位互換性の問題を引き起こす可能性のある、5.5.x と 6.0.x の間の既知の変更点をすべて示します。

Java 5 が必須

Apache Tomcat 6.0.x は、JRE 1.4 で実行するための互換性パッケージを使用できた Apache Tomcat 5.5.x とは異なり、Java 5 以降が必要です。

変更されたディレクトリ構造

共有ライブラリ

Apache Tomcat 5.5.x は、デフォルトで commonshared、および server サブディレクトリを含むディレクトリ構造を使用していました。 Apache Tomcat 6.0.x では、単一の lib ディレクトリを使用します。

lib ディレクトリは、common/libcommon/classes の両方のサブディレクトリを直接置き換えるもので、JAR と展開されたクラス階層の両方を受け入れます。

conf/catalina.properties ファイルを使用して、ディレクトリ構造を変更できます。

バージョン 6.0.21 以降、Apache Tomcat は $CATALINA_BASE/lib ディレクトリと $CATALINA_HOME/lib ディレクトリの両方をサポートします。 $CATALINA_BASE/lib 内の JAR とクラスはクラスパス上でより先に存在するため、優先されます。

推奨ライブラリ

$CATALINA_HOME/common/endorsed サブディレクトリは、$CATALINA_HOME/endorsed ディレクトリに置き換えられました。このディレクトリはデフォルトでは存在しません。

JAVA_ENDORSED_DIRS 環境変数は、このディレクトリの代替場所を提供するために setenv.bat|sh スクリプトで使用できます。

デフォルトのWebアプリケーション

Manager および Host Manager Web アプリケーションは、server/webapps にはもうありません。デフォルトのすべての Web アプリケーションは、webapps ディレクトリに配置されるようになりました。

HostdeployOnStartup または autoDeploy オプションが有効になっている場合、manager および host-manager アプリケーションの META-INF/context.xml ファイルは、Tomcat が最初に起動するときに $CATALINA_BASE/conf/[engine_name]/[host_name] ディレクトリにコピーされることに注意してください。

共有 Web ホスティング環境を使用する場合は、Web アプリケーション内での context.xml の使用を禁止することをお勧めします (Host 要素の deployXML 属性を使用)。(このオプションは Tomcat 5.5 でも利用可能です)。

変更されたクラスローディング

ディレクトリ構造の変更の結果として、共通、共有、およびサーバーのクラスローダーが 1 つに統合されました。事実上、共有クラスローダーとサーバークラスローダーはデフォルトでは構成されず、共通クラスローダーは上記のように lib ディレクトリにマップされます。

この動作と構造は、conf/catalina.properties ファイルを使用して変更できます。

内部ロギングAPIパッケージの名前変更

Apache Tomcat 5.5.x は、内部ロギングに Apache Commons Logging ライブラリに依存していました。 Apache Tomcat 6.0.x 以降では、ライブラリを直接使用しなくなりましたが、プライベートコピーを使用します。クラスは org.apache.juli.logging パッケージにあります。

この変更の背景にある理論的根拠は、アプリケーションのロギングがコンテナから可能な限り独立しているようにし、統一できる可能性も維持することです。

デフォルトでは、java.util.logging へのロギングを実行するために必要な Apache Commons Logging クラスのサブセットのみが Tomcat に含まれています。 Tomcat がロギングを Log4J、または完全な Apache Commons Logging ライブラリでサポートされているその他のロギングフレームワークにリダイレクトするように構成する場合は、Tomcat JAR のいずれかを完全な実装に置き換える必要があります。 JAR はエクストラコンポーネントとして入手できます。詳細については、ロギングとエクストラドキュメントを参照してください。

commons-logging.jar

Apache Tomcat は Apache Commons Logging ライブラリを直接使用しなくなったため、commons-logging-api.jar ライブラリは Web アプリケーションに提供されなくなりました。 Apache Commons Logging を使用する Web アプリケーションは、そのライブラリの独自のコピーを提供する必要があります。他の JAR と同様に、WEB-INF/lib ディレクトリに配置することをお勧めします。

ConnectorのSSLEnabled属性

すべての SSL 対応コネクタでは、暗号化を有効にするために SSLEnabled フラグを true に設定する必要があります。 Tomcat は、プロキシシナリオで最大の柔軟性を実現するために、トランスポートを暗号化する必要があるかどうかを判断するためにプロトコルやその他のパラメーターに依存しなくなりました。

コネクタスレッドプール

Connector スレッドプールは簡素化されました。現在、指定された最大サイズまで増加しますが、縮小することはありません。スレッドプールの縮小に関連する属性 (例: minSpareThreads) は無視されます。需要に応じて増減するスレッドプールが必要な場合は、Executor を構成し、それを使用するように Connector を構成する必要があります。

クラスタリング構成の変更

クラスタリング構成がリファクタリングされました。詳細については、クラスタリングドキュメントを参照してください。

6.0.x のアップグレード

Apache Tomcat のインスタンスを Tomcat 6 のあるバージョンから別のバージョンにアップグレードする場合、特に $CATALINA_HOME と $CATALINA_BASE に別々の場所を使用している場合は、新しい属性やデフォルトの変更などの構成ファイルの変更がアップグレードの一部として適用されることを確認する必要があります。これらの変更の特定を支援するために、以下のフォームを使用して、Tomcat 6 の異なるバージョンにおける構成ファイル間の差異を表示できます。

Tomcat 6.0.x の構成ファイルの違い

以下のボックスから構成ファイル、古いバージョン、および新しいバージョンを選択し、[差異の表示] をクリックして差異を表示します。差異は新しいタブ/ウィンドウに表示されます。

また、次のような Subversion コマンドを使用することもできます (すべて 1 行)。

svn diff
  --old=http://svn.apache.org/repos/asf/tomcat/archive/tc6.0.x/tags/TOMCAT_6_0_36/conf/
  --new=http://svn.apache.org/repos/asf/tomcat/archive/tc6.0.x/tags/TOMCAT_6_0_37/conf/