<section name="Shared Library Files">
-<p>Like most servlet containers, Tomcat 5 also supports mechanisms to install
+<p>Like most servlet containers, Tomcat 6 also supports mechanisms to install
library JAR files (or unpacked classes) once, and make them visible to all
installed web applications (without having to be included inside the web
application itself. The details of how Tomcat locates and shares such
classes are described in the
<a href="../class-loader-howto.html">Class Loader HOW-TO</a> documentation.
-For the purposes of our discussion, there are two locations that are commonly
-used within a Tomcat 5 installation for shared code:</p>
-<ul>
-<li><strong>$CATALINA_HOME/common/lib</strong> - JAR files placed here are
- visible both to web applications and internal Tomcat code. This is a
- good place to put JDBC drivers that are required for both your application
- and internal Tomcat use (such as for a JDBCRealm).
- <br/><br/></li>
-<li><strong>$CATALINA_BASE/shared/lib</strong> - JAR files placed here are
- visible to all web applications, but not to internal Tomcat code. This
- is the right place for shared libraries that are specific to your
- application.<br/><br/></li>
-</ul>
+The location commonly used within a Tomcat 6 installation for shared code is
+<strong>$CATALINA_HOME/lib</strong>. JAR files placed here are visible both to
+web applications and internal Tomcat code. This is a good place to put JDBC
+drivers that are required for both your application or internal Tomcat use
+(such as for a JDBCRealm).</p>
-<p>Out of the box, a standard Tomcat 5 installation includes a variety
+<p>Out of the box, a standard Tomcat 6 installation includes a variety
of pre-installed shared library files, including:</p>
<ul>
-<li>The <em>Servlet 2.4</em> and <em>JSP 2.0</em> APIs that are fundamental
+<li>The <em>Servlet 2.5</em> and <em>JSP 2.1</em> APIs that are fundamental
to writing servlets and JavaServer Pages.<br/><br/></li>
<li>An <em>XML Parser</em> compliant with the JAXP (version 1.2) APIs, so
your application can perform DOM-based or SAX-based processing of
<section name="Web Application Deployment Descriptor">
- <blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 5,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 5 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
- </em></blockquote>
-
<p>As mentioned above, the <code>/WEB-INF/web.xml</code> file contains the
Web Application Deployment Descriptor for your application. As the filename
extension implies, this file is an XML document, and defines everything about
<p><strong>NOTE</strong> - The Servlet Specification includes a Document
Type Descriptor (DTD) for the web application deployment descriptor, and
-Tomcat 5 enforces the rules defined here when processing your application's
+Tomcat 6 enforces the rules defined here when processing your application's
<code>/WEB-INF/web.xml</code> file. In particular, you <strong>must</strong>
enter your descriptor elements (such as <code><filter></code>,
<code><servlet></code>, and <code><servlet-mapping></code> in
<section name="Tomcat Context Descriptor">
- <blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 5,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 5 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
- </em></blockquote>
-
<p>A /META-INF/context.xml file can be used to define Tomcat specific
configuration options, such as loggers, data sources, session manager
configuration and more. This XML file must contain one Context element, which
</section>
-<section name="Deployment With Tomcat 5">
+<section name="Deployment With Tomcat 6">
+
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
+ </em></blockquote>
<p>In order to be executed, a web application must be deployed on
a servlet container. This is true even during development.
-We will describe using Tomcat 5 to provide the execution environment.
+We will describe using Tomcat 6 to provide the execution environment.
A web application can be deployed in Tomcat by one of the following
approaches:</p>
<ul>
<li><em>Copy unpacked directory hierarchy into a subdirectory in directory
- <code>$CATALINA_HOME/webapps/</code></em>. Tomcat will assign a
+ <code>$CATALINA_BASE/webapps/</code></em>. Tomcat will assign a
context path to your application based on the subdirectory name you
choose. We will use this technique in the <code>build.xml</code>
file that we construct, because it is the quickest and easiest approach
updating your application.
<br/><br/></li>
<li><em>Copy the web application archive file into directory
- <code>$CATALINA_HOME/webapps/</code></em>. When Tomcat is started, it will
+ <code>$CATALINA_BASE/webapps/</code></em>. When Tomcat is started, it will
automatically expand the web application archive file into its unpacked
form, and execute the application that way. This approach would typically
be used to install an additional application, provided by a third party
directory that Tomcat created, and then restart Tomcat, in order to reflect
your changes.
<br/><br/></li>
-<li><em>Use the Tomcat 5 "Manager" web application to deploy and undeploy
- web applications</em>. Tomcat 5 includes a web application, deployed
+<li><em>Use the Tomcat 6 "Manager" web application to deploy and undeploy
+ web applications</em>. Tomcat 6 includes a web application, deployed
by default on context path <code>/manager</code>, that allows you to
deploy and undeploy applications on a running Tomcat server without
restarting it. See the administrator documentation (TODO: hyperlink)
for more information on using the Manager web application.<br/><br/></li>
-<li><em>Use "Manager" Ant Tasks In Your Build Script</em>. Tomcat 5
+<li><em>Use "Manager" Ant Tasks In Your Build Script</em>. Tomcat 6
includes a set of custom task definitions for the <code>Ant</code>
build tool that allow you to automate the execution of commands to the
"Manager" web application. These tasks are used in the Tomcat deployer.
<br/><br/></li>
-<li><em>Use the Tomcat Deployer</em>. Tomcat 5 includes a packaged tool
+<li><em>Use the Tomcat Deployer</em>. Tomcat 6 includes a packaged tool
bundling the Ant tasks, and can be used to automatically precompile JSPs
which are part of the web application before deployment to the server.
<br/><br/></li>
<p>In the remainder of this manual, example shell scripts assume that you have
set an environment variable <code>CATALINA_HOME</code> that contains the
-pathname to the directory in which Tomcat 6 has been installed.</p>
+pathname to the directory in which Tomcat 6 has been installed. Optionally, if
+Tomcat has been configured for multiple instances, each instance will have its
+own <code>CATALINA_BASE</code> configured.</p>
</subsection>
<ul>
<li><em>Configure the Ant custom tasks</em>. The implementation code for the
Ant custom tasks is in a JAR file named
- <code>$CATALINA_HOME/server/lib/catalina-ant.jar</code>, which must be
+ <code>$CATALINA_HOME/lib/catalina-ant.jar</code>, which must be
copied in to the <code>lib</code> directory of your Ant installation.
<br/><br/></li>
<li><em>Define one or more Tomcat users</em>. The <em>Manager</em> web
directory. The supported properties are listed in the comments inside
the sample <code>build.xml</code> script. At a minimum, you will generally
need to define the <code>catalina.home</code> property defining where
-Tomcat 5 is installed, and the manager application username and password.
+Tomcat 6 is installed, and the manager application username and password.
You might end up with something like this:</p>
<source>
# Context path to install this application on
app.path=/hello
-# Tomcat 5 installation directory
+# Tomcat 6 installation directory
catalina.home=/usr/local/apache-tomcat-6.0
# Manager webapp username and password
the sample <code>build.xml</code> script. Using these commands might follow
a pattern like this:</p>
<ul>
-<li><em>Start Tomcat 5 if needed</em>. If Tomcat 5 is not already running,
+<li><em>Start Tomcat 6 if needed</em>. If Tomcat 6 is not already running,
you will need to start it in the usual way.
<br/><br/></li>
<li><em>Compile your application</em>. Use the <code>ant compile</code>
<section name="Directory Structure">
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 5,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 5 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
<p>A key recommendation of this manual is to separate the directory
<li><strong>build/</strong> - When you execute a default build
(<code>ant</code>), this directory will contain an exact image
of the files in the web application archive for this application.
- Tomcat 5 allows you to deploy an application in an unpacked
+ Tomcat 6 allows you to deploy an application in an unpacked
directory like this, either by copying it to the
- <code>$CATALINA_HOME/webapps</code> directory, or by <em>installing</em>
+ <code>$CATALINA_BASE/webapps</code> directory, or by <em>installing</em>
it via the "Manager" web application. The latter approach is very
useful during development, and will be illustrated below.
<br/><br/></li>
"standard" build properties stored in the developer's home directory.</p>
<p>In many cases, your development system administrator will have already
- installed the required JAR files into Tomcat 5's <code>common/lib</code>
- or <code>shared/lib</code> directories. If this has been done, you need
+ installed the required JAR files into Tomcat 6's <code>lib</code> directory.
+ If this has been done, you need
to take no actions at all - the example <code>build.xml</code> file
automatically constructs a compile classpath that includes these files.</p>
</ul>
<p>For interactive development and testing of your web application using
-Tomcat 5, the following additional targets are defined:</p>
+Tomcat 6, the following additional targets are defined:</p>
<ul>
-<li><strong>install</strong> - Tell the currently running Tomcat 5 to make
+<li><strong>install</strong> - Tell the currently running Tomcat 6 to make
the application you are developing immediately available for execution
- and testing. This action does not require Tomcat 5 to be restarted, but
+ and testing. This action does not require Tomcat 6 to be restarted, but
it is also not remembered after Tomcat is restarted the next time.
<br/><br/></li>
<li><strong>reload</strong> - Once the application is installed, you can
continue to make changes and recompile using the <code>compile</code>
- target. Tomcat 5 will automatically recognize changes made to JSP pages,
+ target. Tomcat 6 will automatically recognize changes made to JSP pages,
but not to servlet or JavaBean classes - this command will tell Tomcat
to restart the currently installed application so that such changes are
recognized.
<br/><br/></li>
<li><strong>remove</strong> - When you have completed your development and
- testing activities, you can optionally tell Tomcat 5 to remove this
+ testing activities, you can optionally tell Tomcat 6 to remove this
application from service.
</li>
</ul>
<li><strong>System</strong> - This class loader is normally initialized from
the contents of the <code>CLASSPATH</code> environment variable. All such
classes are visible to both Tomcat internal classes, and to web
- applications. However, the standard Tomcat 5 startup scripts
+ applications. However, the standard Tomcat 6 startup scripts
(<code>$CATALINA_HOME/bin/catalina.sh</code> or
<code>%CATALINA_HOME%\bin\catalina.bat</code>) totally ignore the contents
of the <code>CLASSPATH</code> environment variable itself, and instead
http://java.sun.com/j2se/1.5/docs/guide/standards/index.html</a>.</p>
<p>Tomcat utilizes this mechanism by including the system property setting
-<code>-Djava.endorsed.dirs=$CATALINA_HOME/endorsed</code> in the
+<code>-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS</code> in the
command line that starts the container.</p>
</section>
<section name="Introduction">
+ <blockquote><em>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
+ </em></blockquote>
+
<p>The <strong>Context</strong> element represents a <em>web
application</em>, which is run within a particular virtual host.
Each web application is based on a <em>Web Application Archive</em>
<p><strong>Context</strong> elements may be explicitly defined:
<ul>
- <li>in the <code>$CATALINA_HOME/conf/context.xml</code> file:
+ <li>in the <code>$CATALINA_BASE/conf/context.xml</code> file:
the Context element information will be loaded by all webapps</li>
<li>in the
- <code>$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default</code>
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default</code>
file: the Context element information will be loaded by all webapps of that
host</li>
<li>in individual files (with a ".xml" extension) in the
- <code>$CATALINA_HOME/conf/[enginename]/[hostname]/</code> directory.
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> directory.
The name of the file (less the .xml extension) will be used as the
context path. Multi-level context paths may be defined using #, e.g.
<code>context#path.xml</code>. The default web application may be defined
<a href="host.html#User Web Applications">User Web Applications</a>
for more information.</p>
- <blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
- </em></blockquote>
-
</section>
<code>java.io.File</code>) named
<code>javax.servlet.context.tempdir</code> as described in the
Servlet Specification. If not specified, a suitable directory
- underneath <code>$CATALINA_HOME/work</code> will be provided.</p>
+ underneath <code>$CATALINA_BASE/work</code> will be provided.</p>
</attribute>
</attributes>
<attribute name="jvmRoute" required="false">
<p>Identifier which must be used in load balancing scenarios to enable
session affinity. The identifier, which must be unique across all
- Tomcat 5 servers which participate in the cluster, will be appended to
+ Tomcat 6 servers which participate in the cluster, will be appended to
the generated session identifier, therefore allowing the front end
- proxy to always forward a particular session to the same Tomcat 5
+ proxy to always forward a particular session to the same Tomcat 6
instance.</p>
</attribute>
<code>defaultHost</code> attribute of that Engine.</p>
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
</section>
applications from interacting with the container's configuration. The
administrator will then be responsible for providing an external context
configuration file, and put it in
- <code>$CATALINA_HOME/conf/[enginename]/[hostname]/</code>.
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code>.
The flag's value defaults to <code>true</code>.</p>
</attribute>
attribute (of type <code>java.io.File</code>) named
<code>javax.servlet.context.tempdir</code> as described in the
Servlet Specification. If not specified, a suitable directory
- underneath <code>$CATALINA_HOME/work</code> will be provided.</p>
+ underneath <code>$CATALINA_BASE/work</code> will be provided.</p>
</attribute>
</attributes>
<code>true</code> (which is the default value):</p>
<ul>
<li>Any XML file in the
- <code>$CATALINA_HOME/conf/[engine_name]/[host_name]</code> directory is
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> directory is
assumed to contain a
<a href="context.html">Context</a> element (and its associated
subelements) for a single web application. The <code>docBase</code>
<p>In addition to the automatic deployment that occurs at startup time,
you can also request that new XML configuration files, WAR files, or
subdirectories that are dropped in to the <code>appBase</code> (or
- <code>$CATALINA_HOME/conf/[engine_name]/[host_name]</code> in the case of
+ <code>$CATALINA_BASE/conf/[engine_name]/[host_name]</code> in the case of
an XML configuration file) directory while Tomcat is running will be
automatically deployed, according to the rules described above. The
auto deployer will also track web applications for the following changes:
that is implemented by Catalina, see <a href="../class-loader-howto.html">the ClassLoader HowTo</a>.</p>
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
</section>
<p>In order for the JDBC Based Store to successfully connect to your
database, the JDBC driver you configure must be visible to Tomcat's
internal class loader. Generally, that means you must place the JAR
- file containing this driver into the <code>$CATALINA_HOME/server/lib</code>
- directory (if your applications do not also need it) or into the
- <code>$CATALINA_HOME/common/lib</code> directory (if you wish to share
- this driver with your web applications.</p>
+ file containing this driver into the <code>$CATALINA_HOME/lib</code>
+ directory.</p>
</section>
</p>
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
</section>
<attributes>
<attribute name="pathname" required="false">
- <p>Absolute or relative (to $CATALINA_HOME) pathname to the XML file
+ <p>Absolute or relative (to $CATALINA_BASE) pathname to the XML file
containing our user information. See below for details on the
XML element format required. If no pathname is specified, the
default value is <code>conf/tomcat-users.xml</code>.</p>
described individually below.</p>
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
</section>
<attribute name="directory" required="false">
<p>Absolute or relative pathname of a directory in which log files
created by this valve will be placed. If a relative path is
- specified, it is interpreted as relative to $CATALINA_HOME. If
+ specified, it is interpreted as relative to $CATALINA_BASE. If
no directory attribute is specified, the default value is "logs"
- (relative to $CATALINA_HOME).</p>
+ (relative to $CATALINA_BASE).</p>
</attribute>
<attribute name="pattern" required="false">
<section name="Where is it declared?">
<a name="where"></a>
-It is declared globally in <i>$CATALINA_HOME/conf/web.xml</i>.
+It is declared globally in <i>$CATALINA_BASE/conf/web.xml</i>.
By default here is it's declaration:
<source>
<servlet>
<p>
The locations for Context Descriptors are;
<ol>
- <li>$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml</li>
- <li>$CATALINA_HOME/webapps/[webappname]/META-INF/context.xml</li>
+ <li>$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml</li>
+ <li>$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml</li>
</ol>
Files in (1) are named [webappname].xml but files in (2) are named
context.xml. If a Context Descriptor is not provided for a Context,
<p>
The web applications present in the location specified by the Host's
(default Host is "localhost") <code>appBase</code> attribute (default
- appBase is "$CATALINA_HOME/webapps") will be deployed on Tomcat startup
+ appBase is "$CATALINA_BASE/webapps") will be deployed on Tomcat startup
only if the Host's <code>deployOnStartup</code> attribute is "true".
</p>
<p>
Re-deployment of a web application if a Context Descriptor file (with a
filename corresponding to the Context path of the previously deployed
web application) is added to the
- <code>$CATALINA_HOME/conf/[enginename]/[hostname]/</code>
+ <code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code>
directory.
</li>
<li>
<code>compile</code> (default): Compile and validate the web
application. This can be used standalone, and does not need a running
Tomcat server. The compiled application will only run on the associated
- Tomcat 5.5.x server release, and is not guaranteed to work on another
+ Tomcat 6.0.x server release, and is not guaranteed to work on another
Tomcat release, as the code generated by Jasper depends on its runtime
component. It should also be noted that this target will also compile
automatically any Java source file located in the
<p>The purpose of this specification is to define high level requirements
for administrative applications that can be used to manage the operation
- of a running Tomcat 5 container. A variety of <em>Access Methods</em>
+ of a running Tomcat 6 container. A variety of <em>Access Methods</em>
to the supported administrative functionality shall be supported, to
meet varying requirements:</p>
<ul>
<ul>
<li>To the maximum extent feasible, all administrative functions,
and the access methods that support them, shall run portably
- on all platforms where Tomcat 5 itself runs.</li>
+ on all platforms where Tomcat 6 itself runs.</li>
<li>In a default Tomcat distribution, all administrative capabilities
shall be disabled. It shall be necessary for a system
administrator to specifically enable the desired access methods
<li><a href="http://java.sun.com/j2se/">Java 2 Standard Edition</a>
(Version 1.2 or later)</li>
<li><a href="http://www.jcp.org/jsr/detail/154.jsp">Servlet 2.4</a>
- (supported natively by Tomcat 5)</li>
+ (supported natively by Tomcat 6)</li>
<li><a href="http://www.jcp.org/jsr/detail/152.jsp">JavaServer Pages 2.0</a>
- (supported natively by Tomcat 5)</li>
+ (supported natively by Tomcat 6)</li>
<li><a href="http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html">JavaServer Pages Standard Tag Library 1.0 (Jakarta Taglibs-Standard 1.0.3)</a></li>
<li><a href="http://jakarta.apache.org/struts/">Struts Framework</a>
(Version 1.0) - MVC Framework for Web Applications</li>
following configurable properties:</p>
<ul>
<li><code>debug</code> - Debugging detail level. [0]</li>
- <li><code>directory</code> - Absolute or relative (to $CATALINA_HOME) path
+ <li><code>directory</code> - Absolute or relative (to $CATALINA_BASE) path
of the directory into which access log files are created.
[logs].</li>
<li><code>pattern</code> - Pattern string defining the fields to be
requirements of the Java2 Enterprise Edition specification? [true]</li>
<li><code>workDir</code> - Absolute pathname of a scratch directory that is
provided to this web application. [Automatically assigned relative to
- $CATALINA_HOME/work]</li>
+ $CATALINA_BASE/work]</li>
</ul>
<p>Each <em>Context</em> is owned by a parent <em>Host</em>, and is
<section name="Default Deployment Descriptor">
<p>Default web application characteristics are configured in a special
- deployment descriptor named <code>$CATALINA_HOME/conf/web.xml</code>. This
+ deployment descriptor named <code>$CATALINA_BASE/conf/web.xml</code>. This
section describes the configurable components that may be stored there.</p>
<p><strong>FIXME</strong> - Complete the description of default servlets,
with this host (for example, a particular host might be named
<code>www.mycompany.com</code> with an alias <code>company.com</code>).
</li>
- <li><code>appBase</code> - Absolute or relative (to $CATALINA_HOME) path
+ <li><code>appBase</code> - Absolute or relative (to $CATALINA_BASE) path
to a directory from which web applications will be automatically
deployed.</li>
<li><code>debug</code> - Debugging detail level. [0]</li>
following configurable properties:</p>
<ul>
<li><code>debug</code> - Debugging detail level. [0]</li>
- <li><code>pathname</code> - Absolute or relative (to $CATALINA_HOME) path to
+ <li><code>pathname</code> - Absolute or relative (to $CATALINA_BASE) path to
the XML file containing our user information. [conf/tomcat-users.xml]
</li>
</ul>
<p>This document defines the <em>Supported Operations</em> that may
be performed against the <a href="fs-admin-objects.html">Administered
-Objects</a> that are supported by Tomcat 5 administrative applications.
+Objects</a> that are supported by Tomcat 6 administrative applications.
Not all operations are required to be available through every administrative
application that is implemented. However, if a given operation is available,
it should operate consistently with the descriptions found here.</p>
<ul>
<li>The default servlet must be registered in the application deployment
descriptor (or the default deployment descriptor in file
- <code>$CATALINA_HOME/conf/web.xml</code>) using a "default servlet"
+ <code>$CATALINA_BASE/conf/web.xml</code>) using a "default servlet"
servlet mapping, signified by URL pattern "/".</li>
</ul>
<ul>
<li>The invoker servlet must be registered in the application deployment
descriptor (or the default deployment descriptor in file
- <code>$CATALINA_HOME/conf/web.xml</code>) using a "path mapped"
+ <code>$CATALINA_BASE/conf/web.xml</code>) using a "path mapped"
servlet mapping. The historical default mapping is to URL pattern
"<code>/servlet/*</code>", although the invoker servlet must operate
correctly with an arbitrary mapping.</li>
<subsection name="Introduction">
<p>The purpose of the <strong>JDBCRealm</strong> implementation is to
- provide a mechanism by which Tomcat 5 can acquire information needed
+ provide a mechanism by which Tomcat 6 can acquire information needed
to authenticate web application users, and define their security roles,
from a relational database accessed via JDBC APIs. For integration
with Catalina, the resulting class(es) must implement the
JDBCRealm to operate correctly:</p>
<ul>
<li>The desire to utilize JDBCRealm must be registered in
- <code>$CATALINA_HOME/conf/server.xml</code>, in a
+ <code>$CATALINA_BASE/conf/server.xml</code>, in a
<code><Realm></code> element that is nested inside a
corresponding <code><Engine></code>, <code><Host></code>,
or <code><Context></code> element.</li>
<subsection name="Introduction">
<p>The purpose of the <strong>JNDIRealm</strong> implementation is to
- provide a mechanism by which Tomcat 5 can acquire information needed
+ provide a mechanism by which Tomcat 6 can acquire information needed
to authenticate web application users, and define their security roles,
from a directory server or other service accessed via JNDI APIs. For
integration with Catalina, this class must implement the
JNDIRealm to operate correctly:</p>
<ul>
<li>The desire to utilize JNDIRealm must be registered in
- <code>$CATALINA_HOME/conf/server.xml</code>, in a
+ <code>$CATALINA_BASE/conf/server.xml</code>, in a
<code><Realm></code> element that is nested inside a
corresponding <code><Engine></code>, <code><Host></code>,
or <code><Context></code> element.</li>
<subsection name="Introduction">
<p>The purpose of the <strong>MemoryRealm</strong> implementation is to
- provide a mechanism by which Tomcat 5 can acquire information needed
+ provide a mechanism by which Tomcat 6 can acquire information needed
to authenticate web application users, and define their security roles,
from a simple text-based configuration file in XML format. This is
- intended to simplify the initial installation and operation of Tomcat 5,
+ intended to simplify the initial installation and operation of Tomcat 6,
without the complexity of configuring a database or directory server
based Realm. It is not intended for production use.</p>
MemoryRealm to operate correctly:</p>
<ul>
<li>The desire to utilize MemoryRealm must be registered in
- <code>$CATALINA_HOME/conf/server.xml</code>, in a
+ <code>$CATALINA_BASE/conf/server.xml</code>, in a
<code><Realm></code> element that is nested inside a
corresponding <code><Engine></code>, <code><Host></code>,
or <code><Context></code> element. (This is already
<li><code>MemoryRealm</code> must have an XML parser compatible with
the JAXP/1.1 APIs available to it. This is normally accomplished
by placing the corresponding JAR files in directory
- <code>$CATALINA_HOME/server/lib</code> (to make them visible only
- to internal Catalina classes) or in directory
- <code>$CATALINA_HOME/common/lib</code> (to make them visible to
- Catalina internal classes <strong>and</strong> installed web
- applications).</li>
+ <code>$CATALINA_HOME/lib</code>.</li>
</ul>
</subsection>
<ul>
<li>Configurable debugging detail level.</li>
<li>Configurable file pathname (absolute or relative to
- <code>$CATALINA_HOME</code> of the XML file containing our
+ <code>$CATALINA_BASE</code> of the XML file containing our
defined users. [<code>conf/tomcat-users.xml</code>].</li>
</ul>
<p>This documentation area includes <em>functional specifications</em> for
many features supported by the <strong>Catalina</strong> servlet container
-portion of Tomcat 5. In most cases, these features are not documented in the
+portion of Tomcat 6. In most cases, these features are not documented in the
underlying Servlet or JSP specifications, so a definition of the expected
correct behavior is important both to implementors of those features, and to
test writers trying to decide what to test.</p>
in the menu (to the left):</p>
<ul>
<li><em>Administrative Apps</em> - Overall requirements for supporting an
- ability to configure and operate a Tomcat 5 installation through tools,
+ ability to configure and operate a Tomcat 6 installation through tools,
as well as detailed requirements for the tools themselves.</li>
<li><em>Internal Servlets</em> - Requirements for Catalina features that are
implemented as internal, container-managed, servlets.</li>
<li><em>Realm Implementations</em> - Requirements for the implementations of
the <code>org.apache.catalina.Realm</code> interface (providing access to
collections of users, passwords and roles) that are included in the
- standard Tomcat 5 distribution.</li>
+ standard Tomcat 6 distribution.</li>
</ul>
<p><em>NOTE</em> - In some cases, the contents of these functional specs has
<li><em>Encountered exception</em>
<blockquote>
<p>An exception was encountered trying to start the web application.
- Check the Tomcat 5 logs for the details.</p>
+ Check the Tomcat 6 logs for the details.</p>
</blockquote></li>
<li><em>Invalid context path was specified</em>
<blockquote>
<li><em>Encountered exception</em>
<blockquote>
<p>An exception was encountered trying to stop the web application.
- Check the Tomcat 5 logs for the details.</p>
+ Check the Tomcat 6 logs for the details.</p>
</blockquote></li>
<li><em>Invalid context path was specified</em>
<blockquote>
<li><em>Encountered exception</em>
<blockquote>
<p>An exception was encountered trying to restart the web application.
- Check the Tomcat 5 logs for the details.</p>
+ Check the Tomcat 6 logs for the details.</p>
</blockquote></li>
<li><em>Invalid context path was specified</em>
<blockquote>
<li><em>Encountered exception</em>
<blockquote>
<p>An exception was encountered trying to start the new web application.
- Check the Tomcat 5 logs for the details, but likely explanations include
+ Check the Tomcat 6 logs for the details, but likely explanations include
problems parsing your <code>/WEB-INF/web.xml</code> file, or missing
classes encountered when initializing application event listeners and
filters.</p>
- Configuring a JNDI DataSoure with a DB connection pool.
Examples for many popular databases.</li>
<li><a href="class-loader-howto.html"><strong>Classloading</strong></a>
- - Information about class loading in Apache Tomcat 5, including where to place
+ - Information about class loading in Apache Tomcat 6, including where to place
your application classes so that they are visible.</li>
<li><a href="jasper-howto.html"><strong>JSPs</strong></a>
- Information about Jasper configuration, as well as the JSP compiler
<li><a href="cgi-howto.html"><strong>CGI</strong></a> -
Using CGIs with Apache Tomcat.</li>
<li><a href="proxy-howto.html"><strong>Proxy Support</strong></a> -
- Configuring Apache Tomcat 5 to run behind a proxy server (or a web server
+ Configuring Apache Tomcat 6 to run behind a proxy server (or a web server
functioning as a proxy server).</li>
<li><a href="mbeans-descriptor-howto.html"><strong>MBean Descriptor</strong></a> -
Configuring MBean descriptors files for custom components.</li>
<strong>$CATALINA_HOME</strong>. This represents the root of your Tomcat
installation. When we say, "This information can be found in your
$CATALINA_HOME/README.txt file" we mean to look at the README.txt file at the
-root of your Tomcat install.</p>
+root of your Tomcat install. Optionally, Tomcat may be configured for multiple
+instances by defining <strong>$CATALINA_BASE</strong> for each instance. If
+multiple instances are not configured, <strong>$CATALINA_BASE</strong> is the
+same as <strong>$CATALINA_HOME</strong>.</p>
-<p>These are some of the key tomcat directories, all relative
-to <strong>$CATALINA_HOME</strong>:</p>
+<p>These are some of the key tomcat directories:</p>
<ul>
<li><strong>/bin</strong> - Startup, shutdown, and other scripts. The
<ul>
<li>From your <a href="ant.apache.org">Ant</a> installation, copy ant.jar
and (if it's available: Ant 1.5 and later) ant-launcher.jar to
-<code>$CATALINA_BASE/lib</code>.</li>
+<code>$CATALINA_HOME/lib</code>.</li>
<li>Download and install jikes. jikes must support the -encoding option.
Execute <code>jikes -help</code> to verify that it was built with support
for <code>-encoding</code>.</li>
</p>
-<p>Finally deploy your web app into <code>$CATALINA_HOME/webapps</code> either
+<p>Finally deploy your web app into <code>$CATALINA_BASE/webapps</code> either
as a warfile called <code>DBTest.war</code> or into a sub-directory called
<code>DBTest</code></p>
<p>Once deployed, point a browser at
<p>For Tomcat 6, these entries in per-web-application
<code>InitialContext</code> are configured in the
<a href="config/context.html"><code><Context></code></a> elements that
-can be specified in either <code>$CATALINA_HOME/conf/server.xml</code> or,
+can be specified in either <code>$CATALINA_BASE/conf/server.xml</code> or,
preferably, the per-web-application context XML file (
<code>META-INF/context.xml</code>).
</p>
entire server. These are configured in the
<a href="config/globalresources.html">
<code><strong><GlobalNameingResources></strong></code></a> element of
-<code>$CATALINA_HOME/conf/server.xml</code>. You may expose these resources to
+<code>$CATALINA_BASE/conf/server.xml</code>. You may expose these resources to
web applications by using
<code><strong><ResourceLink></strong></code> elements.
</p>
</ul>
</p>
<p>
- Example logging.properties file to be placed in $CATALINA_HOME/conf:
+ Example logging.properties file to be placed in $CATALINA_BASE/conf:
<source>
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, \
3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, \
<p>A default Tomcat installation includes the manager. To add an instance of the
Manager web application <code>Context</code> to a new host install the
<code>manager.xml</code> context configuration file in the
-<code>$CATALINA_HOME/conf/[enginename]/[hostname]</code> folder. Here is an
+<code>$CATALINA_BASE/conf/[enginename]/[hostname]</code> folder. Here is an
example:
<pre>
<Context path="/manager" debug="0" privileged="true"
<section name="Configuring Manager Application Access">
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
<p>It would be quite unsafe to ship Tomcat with default settings that allowed
who attempts to use it must authenticate themselves, using a username and
password that have the role <strong>manager</strong> associated with them.
Further, there is no username in the default users file
-(<conf>$CATALINA_HOME/conf/tomcat-users.xml</conf>) that is assigned this
+(<conf>$CATALINA_BASE/conf/tomcat-users.xml</conf>) that is assigned this
role. Therefore, access to the Manager application is completely disabled
by default.</p>
depends on which <code>Realm</code> implementation you are using:</p>
<ul>
<li><em>MemoryRealm</em> - If you have not customized your
- <code>$CATALINA_HOME/conf/server.xml</code> to select a different one,
+ <code>$CATALINA_BASE/conf/server.xml</code> to select a different one,
Tomcat 6 defaults to an XML-format file stored at
- <code>$CATALINA_HOME/conf/tomcat-users.xml</code>, which can be
+ <code>$CATALINA_BASE/conf/tomcat-users.xml</code>, which can be
edited with any text editor. This file contains an XML
<code><user></code> for each individual user, which might
look something like this:
This will delete the the application .WAR, if present,
the application directory resulting either from a deploy in unpacked form
or from .WAR expansion as well as the XML Context definition from
-<code>$CATALINA_HOME/conf/[enginename]/[hostname]/</code> directory.
+<code>$CATALINA_BASE/conf/[enginename]/[hostname]/</code> directory.
If you simply want to take an application
out of service, you should use the <code>/stop</code> command instead.</p>
<section name="Manage Tomcat with JMX remote Ant Tasks">
<p>For simple tomcat ant task usage with ant 1.6.x we have integrate import and antlib support.</p>
- <p><b>antlib</b>Copy your catalina-ant.jar from $CATALINA_HOME/server/lib to $ANT_HOME/lib.</p>
+ <p><b>antlib</b>Copy your catalina-ant.jar from $CATALINA_HOME/lib to $ANT_HOME/lib.</p>
<p>Following example show the JMX Accessor usage:</p>
<table border="1">
<tr><td><p><pre>
AddModule mod_proxy.c
</source></li>
<li>Include two directives in your <code>httpd.conf</code> file for
- each web application that you wish to forward to Tomcat 5. For
+ each web application that you wish to forward to Tomcat 6. For
example, to forward an application at context path <code>/myapp</code>:
<source>
ProxyPass /myapp http://localhost:8081/myapp
ProxyPassReverse /myapp http://localhost:8081/myapp
</source>
which tells Apache to forward URLs of the form
- <code>http://localhost/myapp/*</code> to the Tomcat 5 connector
+ <code>http://localhost/myapp/*</code> to the Tomcat 6 connector
listening on port 8081.</li>
-<li>Configure your copy of Tomcat 5 to include a special
+<li>Configure your copy of Tomcat 6 to include a special
<code><Connector></code> element, with appropriate
proxy settings, for example:
<source>
and integrate it with Tomcat 6. To do so, you need to:
<ul>
<li>Implement <code>org.apache.catalina.Realm</code>,</li>
- <li>Place your compiled realm in $CATALINA_HOME/server/lib,</li>
+ <li>Place your compiled realm in $CATALINA_HOME/lib,</li>
<li>Declare your realm as described in the "Configuring a Realm" section below,</li>
<li>Declare your realm to the <a href="mbeans-descriptor-howto.html">MBeans Descriptor</a>.</li>
</ul>
<code>$CATALINA_HOME/lib</code> directory.
Note that <strong>only</strong> JAR files are recognized!</li>
<li>Set up a <code><Realm></code> element, as described below, in your
- <code>$CATALINA_HOME/conf/server.xml</code> file.</li>
+ <code>$CATALINA_BASE/conf/server.xml</code> file.</li>
<li>Restart Tomcat 6 if it is already running.</li>
</ol>
<h3>Realm Element Attributes</h3>
<p>To configure JDBCRealm, you will create a <code><Realm></code>
-element and nest it in your <code>$CATALINA_HOME/conf/server.xml</code> file,
+element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
as described <a href="#Configuring a Realm">above</a>. The following
attributes are supported by this implementation:</p>
</source>
<p>Example <code>Realm</code> elements are included (commented out) in the
-default <code>$CATALINA_HOME/conf/server.xml</code> file. Here's an example
+default <code>$CATALINA_BASE/conf/server.xml</code> file. Here's an example
for using a MySQL database called "authority", configured with the tables
described above, and accessed with username "dbuser" and password "dbpass":</p>
<source>
<a href="jndi-datasource-examples-howto.html">JNDI DataSource Example HOW-TO</a>
for information on how to configure a JNDI named JDBC DataSource.</li>
<li>Set up a <code><Realm></code> element, as described below, in your
- <code>$CATALINA_HOME/conf/server.xml</code> file.</li>
+ <code>$CATALINA_BASE/conf/server.xml</code> file.</li>
<li>Restart Tomcat 6 if it is already running.</li>
</ol>
<h3>Realm Element Attributes</h3>
<p>To configure DataSourceRealm, you will create a <code><Realm></code>
-element and nest it in your <code>$CATALINA_HOME/conf/server.xml</code> file,
+element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
as described <a href="#Configuring a Realm">above</a>. The following
attributes are supported by this implementation:</p>
<code>ldap.jar</code> available with JNDI) inside the
<code>$CATALINA_HOME/lib</code> directory.</li>
<li>Set up a <code><Realm></code> element, as described below, in your
- <code>$CATALINA_HOME/conf/server.xml</code> file.</li>
+ <code>$CATALINA_BASE/conf/server.xml</code> file.</li>
<li>Restart Tomcat 6 if it is already running.</li>
</ol>
<h3>Realm Element Attributes</h3>
<p>To configure JNDIRealm, you will create a <code><Realm></code>
-element and nest it in your <code>$CATALINA_HOME/conf/server.xml</code> file,
+element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
as described <a href="#Configuring a Realm">above</a>. The following
attributes are supported by this implementation:</p>
<p><strong>MemoryRealm</strong> is a simple demonstration implementation of the
Tomcat 6 <code>Realm</code> interface. It is not designed for production use.
At startup time, MemoryRealm loads information about all users, and their
-corresponding roles, from an XML document (by default, this document is loaded from <code>$CATALINA_HOME/conf/tomcat-users.xml</code>). Changes to the data
+corresponding roles, from an XML document (by default, this document is loaded from <code>$CATALINA_BASE/conf/tomcat-users.xml</code>). Changes to the data
in this file are not recognized until Tomcat is restarted.</p>
<h3>Realm Element Attributes</h3>
<p>To configure MemoryRealm, you will create a <code><Realm></code>
-element and nest it in your <code>$CATALINA_HOME/conf/server.xml</code> file,
+element and nest it in your <code>$CATALINA_BASE/conf/server.xml</code> file,
as described <a href="#Configuring a Realm">above</a>. The following
attributes are supported by this implementation:</p>
</attribute>
<attribute name="pathname" required="false">
- <p>Absolute or relative (to $CATALINA_HOME) pathname of the XML document
+ <p>Absolute or relative (to $CATALINA_BASE) pathname of the XML document
containing our valid usernames, passwords, and roles. See below for more
information on the format of this file. If not specified, the value
<code>conf/tomcat-users.xml</code> is used.</p>
href="http://java.sun.com/j2se/1.4.1/docs/guide/security/jaas/tutorials/LoginConfigFile.html">JAAS
LoginConfig file</a>) and tell Tomcat where to find it by specifying
its location to the JVM, for instance by setting the environment
-variable: <code>JAVA_OPTS=-DJAVA_OPTS=-Djava.security.auth.login.config==$CATALINA_HOME/conf/jaas.config</code></li>
+variable: <code>JAVA_OPTS=-DJAVA_OPTS=-Djava.security.auth.login.config==$CATALINA_BASE/conf/jaas.config</code></li>
<li>Configure your security-constraints in your web.xml for
the resources you want to protect</li>
<h3>Realm Element Attributes</h3>
<p>To configure JAASRealm as for step 6 above, you create
a <code><Realm></code> element and nest it in your
-<code>$CATALINA_HOME/conf/server.xml</code>
+<code>$CATALINA_BASE/conf/server.xml</code>
file within your <code><Engine></code> node. The following attributes
are supported by this implementation:</p>
system administrator can use to keep the server secure and reliable.</p>
<p><strong>WARNING</strong> - A security audit
- have been conducted using the Tomcat 5 codebase. Most of the critical
+ have been conducted using the Tomcat 6 codebase. Most of the critical
package have been protected and a new security package protection mechanism
has been implemented. Still, make sure that you are satisfied with your SecurityManager
configuration before allowing untrusted users to publish web applications,
<h3>Policy File Format</h3>
<p>The security policies implemented by the Java SecurityManager are
- configured in the <code>$CATALINA_HOME/conf/catalina.policy</code> file.
+ configured in the <code>$CATALINA_BASE/conf/catalina.policy</code> file.
This file completely replaces the <code>java.policy</code> file present
in your JDK system directories. The <code>catalina.policy</code> file
can be edited by hand, or you can use the
end at the end of the current line. The <code>codeBase</code> is in the
form of a URL, and for a file URL can use the <code>${java.home}</code>
and <code>${catalina.home}</code> properties (which are expanded out to
- the directory paths defined for them by the <code>JAVA_HOME</code> and
- <code>CATALINA_HOME</code> environment variables).</p>
+ the directory paths defined for them by the <code>JAVA_HOME</code>,
+ <code>CATALINA_HOME</code> and <code>CATALINA_BASE</code> environment
+ variables).</p>
<h3>The Default Policy File</h3>
- <p>The default <code>$CATALINA_HOME/conf/catalina.policy</code> file
+ <p>The default <code>$CATALINA_BASE/conf/catalina.policy</code> file
looks like this:</p>
<source>
// ============================================================================
<h3>The Default Properties File</h3>
- <p>The default <code>$CATALINA_HOME/conf/catalina.properties</code> file
+ <p>The default <code>$CATALINA_BASE/conf/catalina.properties</code> file
looks like this:</p>
<source>
#
use OpenSSL, which uses a different configuration.</b></p>
<blockquote><em>
- <p>The description below uses the variable name $CATALINA_HOME
- to refer to the directory into which you have installed Tomcat 6,
- and is the base directory against which most relative paths are
- resolved. However, if you have configured Tomcat 6 for multiple
- instances by setting a CATALINA_BASE directory, you should use
- $CATALINA_BASE instead of $CATALINA_HOME for each of these
- references.</p>
+ <p>The description below uses the variable name $CATALINA_BASE to refer the
+ base directory against which most relative paths are resolved. If you have
+ not configured Tomcat 6 for multiple instances by setting a CATALINA_BASE
+ directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
+ the directory into which you have installed Tomcat 6.</p>
</em></blockquote>
<p>To install and configure SSL support on Tomcat 6, you need to follow
<p></p>
and specify a password value of "changeit".</li><br/><br/>
<li>Uncomment the "SSL HTTP/1.1 Connector" entry in
- <code>$CATALINA_HOME/conf/server.xml</code> and tweak as necessary.</li>
+ <code>$CATALINA_BASE/conf/server.xml</code> and tweak as necessary.</li>
<br/><br/>
</ol>
</p>
<p>The final step is to configure your secure socket in the
-<code>$CATALINA_HOME/conf/server.xml</code> file, where
-<code>$CATALINA_HOME</code> represents the directory into which you
-installed Tomcat 6. An example <code><Connector></code> element
+<code>$CATALINA_BASE/conf/server.xml</code> file, where
+<code>$CATALINA_BASE</code> represents the base directory for the
+Tomcat 6 instance. An example <code><Connector></code> element
for an SSL connector is included in the default <code>server.xml</code>
file installed with Tomcat. It will look something like this:</p>
<source>