コンテンツ

目次

全般

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

10.0.x から 10.1.x への移行

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

Java 11 が必須

Apache Tomcat 10.1.x には Java 11 以降が必要です。これは、Java 8 以降が必要な Apache Tomcat 10.0.x および 9.0.x からの変更点です。

仕様 API

Apache Tomcat 10.1 は、Jakarta Servlet 6.0、Jakarta Server Pages 3.1、Jakarta Expression Language 5.0、Jakarta WebSocket 2.1、および Jakarta Authentication 3.0 の仕様をサポートしています。

Servlet 6.0 API

5.0 API で非推奨とマークされたすべてのメソッドとクラスは削除されました。

RFC 6265 以外の Cookie 仕様のサポートは削除され、その結果、多くのメソッドが非推奨になりました。

新しいメソッド Cookie.setAttribute(String name, String value) が追加されました。

URI のデコードと正規化のプロセスが明確化されました。

現在のリクエストおよび/または関連する接続の一意の識別子へのアクセスを提供するために、新しいメソッドとクラスが追加されました。

Server Pages 3.1

EL 式に不明な識別子が含まれている場合に PropertyNotFoundException を発生させるオプションが追加されました。

Expression Language 5.0

EL API は、適切な場合にジェネリクスを使用するようになりました。

非推奨の MethodExpression.isParmetersProvided() メソッドは API から削除されました。

WebSocket 2.1

重複するクラスを削除するために、API JAR のパッケージが変更されました。サーバー API は、クライアント API JAR に依存するようになりました。

認証 TBD (未定)

変更ありません。

内部 API

Tomcat 10.1 の内部 API は Tomcat 10.0 と概ね互換性がありますが、詳細レベルでは多くの変更があり、バイナリ互換性はありません。Tomcat の内部と対話するカスタムコンポーネントの開発者は、関連する API の JavaDoc を確認する必要があります。

特に注意が必要なのは

  • 10.0.x で非推奨とマークされたすべてのコードは削除されました。
  • Java 11 以降ではリークが存在しなくなったため、JreMemoryLeakPreventionListener から多くの設定オプションが削除されました。

10.1.x のアップグレード

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

Tomcat 10.1.x の注目すべき変更点

Tomcat 開発者は、各安定版パッチリリースが以前のリリースと完全に後方互換性を持つことを目指しています。場合によっては、バグを修正するために後方互換性を破る必要があります。ほとんどの場合、これらの変更は気づかれません。このセクションでは、完全に後方互換性がない変更と、アップグレード時に破損を引き起こす可能性のある変更をリストしています。

  • 10.1.8 以降、コネクタ属性 maxParameterCount のデフォルト値は 10,000 から 1,000 に減りました。
  • 10.1.2 以降、EL API は、システムプロパティ org.apache.el.GET_CLASSLOADER_USE_PRIVILEGED を介して明示的に設定されていない限り、特権ブロックを使用してスレッドコンテキストクラスローダーを取得しなくなりました。Apache Tomcat 内で EL API を使用する場合、すべての呼び出しはすでにスタックの上位にある特権ブロックにラップされているため、このシステムプロパティを設定する必要はありません。Apache Tomcat の外部で SecurityManager のもとで EL API を使用する場合に必要になる場合があります。
  • 10.1.0-M5 以降、Tomcat 10.0 で非推奨とマークされていた APR コネクタは削除されました。それに伴い、OpenSSL の使用に必要ない API が tomcat-native ライブラリから削除されました。
  • 10.1.0-M3 以降、Tomcat は、機密のトランスポート保証により「Cache-Control: private」を追加するときに、「Expires」HTTP 応答ヘッダーを追加しなくなりました。これは、独自のヘッダーを明示的に設定せずに Tomcat の以前の動作に依存しているアプリケーションのキャッシュ動作の変更を引き起こす可能性があります。キャッシュを無効にする場合は、アプリケーションで明示的に設定する必要があります。詳細については、BZ 65513 を参照してください。

Tomcat 10.1.x の設定ファイルの差異

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

注: 差異がない場合は、エラーページが表示されます。

ワーキングコピー内から、次のような Git コマンドを使用することもできます

git diff 10.1.0-M1 10.1.0-M2 -- conf/