- Migrating from 5.5.x to 6.0.x
- Upgrading 6.0.x
Table of Contents
Please read the general Migration Guide page first, for common considerations that apply to migration or upgrade between versions of Apache Tomcat.
Migrating from 5.5.x to 6.0.x
This section lists all the known changes between 5.5.x and 6.0.x which may cause backwards compatibility problems when upgrading.
Java 5 required
Apache Tomcat 6.0.x requires Java 5 or later, unlike Apache Tomcat 5.5.x which could use a compatibility package to run on JRE 1.4.
Modified directory structure
Apache Tomcat 5.5.x used, by default, a directory structure including
Apache Tomcat 6.0.x uses a single
lib directory is the direct replacement for both
it accepts both JARs and exploded class hierarchies.
conf/catalina.properties file can be used to modify
the directory structure.
Starting with version 6.0.21, Apache Tomcat supports both the
directories. The jars and classes in
are earlier on the class path and thus take precedence.
$CATALINA_HOME/common/endorsed subdirectory is replaced
$CATALINA_HOME/endorsed directory. This directory is
absent by default.
JAVA_ENDORSED_DIRS environment variable can be used
sh scripts to provide alternative
location of this directory.
Default web applications
The Manager and Host Manager web applications are no longer in
server/webapps. All of the default web applications
are now located in the
Note, that if
options on the Host are enabled, the
META-INF/context.xml files of manager and host-manager
applications will be copied into the
directory when Tomcat starts for the first time.
When using a shared webhosting environment, it is recommended to forbid
the use of context.xml inside the web applications (using the
deployXML attribute of the Host element).
(This option is also available in Tomcat 5.5).
As a result of the modification of the directory structure, the
common, shared and server classloaders have been merged into one.
Effectively, the shared and server classloaders are not configured by
default and the common classloader is mapped to the
directory, as described above.
This behavior and structure can be modified using the
Internal Logging API package renaming
Apache Tomcat 5.5.x relied on the
Apache Commons Logging
library for its internal logging. Apache Tomcat 6.0.x and later no more
uses the library directly, but uses a private copy of it. The classes are
The rationale behind this change is that so that application logging can be as independent as possible from the container, while still having the possibility of being unified.
By default only a subset of Apache Commons Logging classes that are
needed to perform logging to
java.util.logging is included
with Tomcat. If you want to configure Tomcat to redirect its logging into
Log4J, or any other logging
framework supported by the full Apache Commons Logging library, you will
have to replace one of Tomcat JARs with the full implementation. The JAR
is available as an extras component. See the logging and extras
documentation for more details.
As Apache Tomcat no longer directly uses the
Apache Commons Logging
commons-logging-api.jar library is no longer
provided for the web applications. The web applications that use
Apache Commons Logging have to provide their own copy of that library.
It is recommended to put it into their
like any other JAR.
SSLEnabled attribute on Connector
For all SSL enabled connectors, the
SSLEnabled flag must be set
true to enable encryption. Tomcat no longer relies on using
the protocol and other parameters to determine if the transport should be
encrypted, to give maximum flexibility in proxied scenarios.
Connector thread pools
The Connector thread pools have been simplified. They
now grow to the maximum size specified but never shrink. The attributes
associated with shrinking the thread pool (e.g.
will be ignored. If you require a thread pool that grows and shrinks with
demand you'll need to configure an Executor and then
configure your Connector to use it.
Clustering configuration changes
Clustering configuration was refactored. See the clustering documentation for more details.
When upgrading instances of Apache Tomcat from one version of Tomcat 6 to another, particularly when using separate locations for $CATALINA_HOME and $CATALINA_BASE, it is necessary to ensure that any changes in the configuration files such as new attributes and changes to defaults are applied as part of the upgrade. To assist with the identification of these changes, the form below may be used to view the differences between the configuration files in different versions of Tomcat 6.
Tomcat 6.0.x configuration file differences
Select a configuration file, old version and new version from the boxes below and then click "View differences" to see the differences. The differences will be shown in a new tab/window.
You can also use Subversion command similar to the following (all on one line):
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/