内容

目录

通用

请首先阅读通用的迁移指南页面,了解适用于 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 目录中。

请注意,如果在 Host 上启用 deployOnStartupautoDeploy 选项,当 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 类加载器已合并为一个。实际上,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 类子集。如果您想配置 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 应用程序必须提供自己的该库副本。建议将其放入其 WEB-INF/lib 目录中,就像任何其他 JAR 一样。

连接器上的 SSLEnabled 属性

对于所有启用 SSL 的连接器,必须将 SSLEnabled 标志设置为 true 以启用加密。Tomcat 不再依赖于使用协议和其他参数来确定传输是否应加密,以在代理场景中提供最大灵活性。

连接器线程池

连接器线程池已简化。它们现在增长到指定的最大大小,但永不收缩。与收缩线程池相关的属性(例如 minSpareThreads)将被忽略。如果您需要一个根据需求增长和收缩的线程池,则需要配置一个 Executor,然后配置您的 连接器 来使用它。

集群配置更改

集群配置已重构。有关更多详细信息,请参阅集群文档。

升级 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/