コンテンツ

目次

一般

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 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 のデコードおよび正規化プロセスが明確化されました。

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

Pages 3.1

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

Expression Language 5.0

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

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

WebSocket 2.1

API JAR のパッケージングが変更され、重複するクラスが削除されました。サーバー API は現在、クライアント API JAR に依存しています。

Authentication 3.0

変更なし。

内部 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 は、CONFIDENTIALなトランスポート保証のために「Cache-Control: private」を追加する場合、「Expires」HTTPレスポンスヘッダを追加しなくなりました。これにより、明示的に独自のヘッダを設定せず、Tomcatの以前の動作に依存していたアプリケーションのキャッシュ動作が変更される可能性があります。キャッシュを無効にしたい場合は、アプリケーションで明示的に設定する必要があります。詳細については、BZ 65513を参照してください。

Tomcat 10.1.x 設定ファイルの違い

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

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

また、作業コピー内から以下のようなGitコマンドを使用することもできます

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