内容
目录
常规
请首先阅读常规 迁移指南页面,了解适用于 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 使用包括 common
、shared
和 server
子目录的目录结构。Apache Tomcat 6.0.x 使用单个 lib
目录。
lib
目录直接替换 common/lib
和 common/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 上的 deployOnStartup
或 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 中也可用)。
修改后的类加载
由于目录结构的修改,公共、共享和服务器类加载器已合并为一个。实际上,共享和服务器类加载器默认未配置,并且公共类加载器已映射到 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 可作为 extras 组件提供。有关更多详细信息,请参阅记录和 extras 文档。
commons-logging.jar
由于 Apache Tomcat 不再直接使用 Apache Commons Logging 库,因此不再为 Web 应用程序提供 commons-logging-api.jar
库。使用 Apache Commons Logging 的 Web 应用程序必须提供该库的副本。建议将其放入其 WEB-INF/lib
目录中,就像任何其他 JAR 一样。
连接器上的 SSLEnabled 属性
对于所有启用了 SSL 的连接器,必须将 SSLEnabled
标志设置为 true
以启用加密。Tomcat 不再依赖于使用协议和其他参数来确定是否应加密传输,以在代理场景中提供最大的灵活性。
连接器线程池
连接器线程池已简化。它们现在增长到指定的最大大小,但绝不会缩小。与缩小线程池相关的属性(例如 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/