Table of Contents
For administrators and web developers alike, there are some important bits of information you should familiarize yourself with before starting out. This document serves as a brief introduction to some of the concepts and terminology behind the Tomcat container. As well, where to go when you need help.
In the course of reading these documents, you will run across a number of terms; some specific to Tomcat, and others defined by the Servlet and JSP specifications.
- Context - In a nutshell, a Context is a web application.
That is it. If you find any more terms we need to add to this section, please do let us know.
Directories and Files
These are some of the key tomcat directories:
- /bin - Startup, shutdown, and other scripts. The
*.shfiles (for Unix systems) are functional duplicates of the
*.batfiles (for Windows systems). Since the Win32 command-line lacks certain functionality, there are some additional files in here.
- /conf - Configuration files and related DTDs. The most important file in here is server.xml. It is the main configuration file for the container.
- /logs - Log files are here by default.
- /webapps - This is where your webapps go.
CATALINA_HOME and CATALINA_BASE
Throughout the documentation, there are references to the two following properties:
CATALINA_HOME: Represents the root of your Tomcat
installation, for example
CATALINA_BASE: Represents the root of a runtime
configuration of a specific Tomcat instance. If you want to have
multiple Tomcat instances on one machine, use the
If you set the properties to different locations, the CATALINA_HOME location
contains static sources, such as
.jar files, or binary files.
The CATALINA_BASE location contains configuration files, log files, deployed
applications, and other runtime requirements.
Why Use CATALINA_BASE
By default, CATALINA_HOME and CATALINA_BASE point to the same directory. Set CATALINA_BASE manually when you require running multiple Tomcat instances on one machine. Doing so provides the following benefits:
Easier management of upgrading to a newer version of Tomcat. Because all
instances with single CATALINA_HOME location share one set of
.jarfiles and binary files, you can easily upgrade the files to newer version and have the change propagated to all Tomcat instances using the same CATALIA_HOME directory.
Avoiding duplication of the same static
The possibility to share certain settings, for example the
setenvshell or bat script file (depending on your operating system).
Contents of CATALINA_BASE
Before you start using CATALINA_BASE, first consider and create the directory tree used by CATALINA_BASE. Note that if you do not create all the recommended directories, Tomcat creates the directories automatically. If it fails to create the necessary directory, for example due to permission issues, Tomcat will either fail to start, or may not function correctly.
Consider the following list of directories:
bindirectory with the
Order of lookup: CATALINA_BASE is checked first; fallback is provided to CATALINA_HOME.
libdirectory with further resources to be added on classpath.
Recommended: Yes, if your application depends on external libraries.
Order of lookup: CATALINA_BASE is checked first; CATALINA_HOME is loaded second.
logsdirectory for instance-specific log files.
webappsdirectory for automatically loaded web applications.
Recommended: Yes, if you want to deploy applications.
Order of lookup: CATALINA_BASE only.
workdirectory that contains temporary working directories for the deployed web applications.
tempdirectory used by the JVM for temporary files.
We recommend you not to change the
However, in case you require your own logging implementation, you can
tomcat-juli.jar file in a CATALINA_BASE location
for the specific Tomcat instance.
We also recommend you copy all configuration files from the
CATALINA_HOME/conf directory into the
CATALINA_BASE/conf/ directory. In case a configuration file
is missing in CATALINA_BASE, there is no fallback to CATALINA_HOME.
Consequently, this may cause failure.
At minimum, CATALINA_BASE must contain:
confdirectory. Otherwise, Tomcat fails to start, or fails to function properly.
For advanced configuration information, see the RUNNING.txt