內容

目錄

一般

請先閱讀一般 遷移指南頁面,了解 Apache Tomcat® 版本之間遷移或升級的常見考量事項。

從 5.5.x 遷移到 6.0.x

此區段列出 5.5.x 和 6.0.x 之間所有已知變更,這些變更可能會在升級時造成向下相容性問題。

需要 Java 5

與可以在 JRE 1.4 上執行相容性套件的 Apache Tomcat 5.5.x 不同,Apache Tomcat 6.0.x 需要 Java 5 或更新版本。

修改目錄結構

共用函式庫

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 腳本,以提供此目錄的替代位置。

預設網路應用程式

Manager 和 Host Manager 網路應用程式不再位於 server/webapps 中。所有預設網路應用程式現在都位於 webapps 目錄中。

請注意,如果在 Host 上啟用 deployOnStartupautoDeploy 選項,則 manager 和 host-manager 應用程式的 META-INF/context.xml 檔案會在 Tomcat 首次啟動時複製到 $CATALINA_BASE/conf/[engine_name]/[host_name] 目錄中。

在使用共用網路代管環境時,建議禁止在網路應用程式內使用 context.xml(使用 Host 元素的 deployXML 屬性)。(此選項在 Tomcat 5.5 中也可用)。

修改類別載入

由於目錄結構的修改,共用、共用和伺服器類別載入器已合併為一個。實際上,共用和伺服器類別載入器預設未設定,而共用類別載入器已對應到 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 程式庫,因此不再為 Web 應用程式提供 commons-logging-api.jar 程式庫。使用 Apache Commons Logging 的 Web 應用程式必須提供該程式庫的副本。建議將其放入其 WEB-INF/lib 目錄中,就像任何其他 JAR 一樣。

Connector 上的 SSLEnabled 屬性

對於所有啟用 SSL 的連接器,必須將 SSLEnabled 旗標設定為 true 以啟用加密。Tomcat 不再依賴使用通訊協定和其他參數來判斷是否應加密傳輸,以在代理場景中提供最大的彈性。

Connector 執行緒池

連接器執行緒池已簡化。它們現在會增加到指定的最大大小,但絕不會縮小。與縮小執行緒池相關的屬性(例如 minSpareThreads)將會被忽略。如果您需要一個會隨著需求而增加和縮小的執行緒池,您需要設定一個 執行器,然後設定您的 連接器 以使用它。

叢集組態變更

叢集設定已重新編寫。請參閱叢集文件,以取得更多詳細資料。

升級 6.0.x

當將 Apache Tomcat 的執行個體從 Tomcat 6 的一個版本升級到另一個版本時,特別是在為 $CATALINA_HOME 和 $CATALINA_BASE 使用不同的位置時,有必要確保設定檔中的任何變更(例如新的屬性和對預設值的變更)都套用為升級的一部分。為了協助識別這些變更,可以使用下方的表單來檢視 Tomcat 6 不同版本中的設定檔差異。

Tomcat 6.0.x 組態檔差異

從下方的方塊中選擇一個設定檔、舊版本和新版本,然後按一下「檢視差異」以查看差異。差異將顯示在新分頁/視窗中。

您也可以使用 Subversion 指令,類似於以下(全部在一行中)

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/