コンテンツ

目次

一般

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

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

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

Java 5が必要

Apache Tomcat 6.0.xはJava 5以降を必要とします。Apache Tomcat 5.5.xは互換性パッケージを使用してJRE 1.4で実行可能でした。

ディレクトリ構造の変更

共有ライブラリ

Apache Tomcat 5.5.xは、デフォルトでcommonsharedserverのサブディレクトリを含むディレクトリ構造を使用していました。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オプションが有効になっている場合、Tomcatが初めて起動するときに、managerおよびhost-managerアプリケーションのMETA-INF/context.xmlファイルは$CATALINA_BASE/conf/[engine_name]/[host_name]ディレクトリにコピーされます。

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

クラスローディングの変更

ディレクトリ構造の変更の結果、common、shared、serverのクラスローダーは1つに統合されました。実質的に、sharedおよびserverのクラスローダーはデフォルトでは設定されず、commonクラスローダーは前述の通りlibディレクトリにマップされます。

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

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

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

この変更の背後にある理由は、アプリケーションのロギングをコンテナから可能な限り独立させつつ、統一できる可能性を保持するためです。

デフォルトでは、Tomcatにはjava.util.loggingへのロギングを実行するために必要なApache Commons Loggingクラスのサブセットのみが含まれています。Log4J、またはフルApache Commons Loggingライブラリによってサポートされるその他のロギングフレームワークにTomcatのロギングをリダイレクトするように設定したい場合、TomcatのJARの1つをフル実装版に置き換える必要があります。この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の設定ファイルの差異

以下のボックスから設定ファイル、古いバージョン、新しいバージョンを選択し、「View differences」をクリックして差異を表示します。差異は新しいタブ/ウィンドウに表示されます。

また、以下のような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/