Tomcat example source code file (deployer-howto.xml)
The Tomcat deployer-howto.xml source code
<?xml version="1.0"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document url="deployer-howto.html"> &project; <properties> <author>Allistair Crossley <title>Tomcat Web Application Deployment </properties> <body> <section name="Table of Contents"> <ul> <li>Introduction <li>Installation <li>A word on Contexts <li>Deployment on Tomcat startup <li>Deploying on a running Tomcat server <li>Deploying using the Tomcat Manager <li>Deploying using the Tomcat Client Deployer</a> </ul> </section> <section name="Introduction"> <p> Deployment is the term used for the process of installing a web application (either a 3rd party WAR or your own custom web application) into the Tomcat server. </p> <p> Web application deployment may be accomplished in a number of ways within the Tomcat server. <ul> <li>Statically; the web application is setup before Tomcat is started <li> Dynamically; in conjunction with the Tomcat Manager web application or manipulating already deployed web applications </li> </ul> </p> <p> The Tomcat Manager is a tool that allows URL-based web application deployment features. There is also a tool called the Client Deployer, which is a command shell based script that interacts with the Tomcat Manager but provides additional functionality such as compiling and validating web applications as well as packaging web application into web application resource (WAR) files. </p> </section> <section name="Installation"> <p> There is no installation required for static deployment of web applications as this is provided out of the box by Tomcat. Nor is any installation required for deployment functions with the Tomcat Manager, although some configuration is required as detailed in the Tomcat Manager manual. An installation is however required if you wish to use the Tomcat Client Deployer (TCD). </p> <p> The TCD is not packaged with the Tomcat core distribution, and must therefore be downloaded separately from the Downloads area. The download is usually labelled <i>apache-tomcat-6.0.x-deployer. </p> <p> TCD has prerequisites of Apache Ant 1.6.2+ and a Java installation. Your environment should define an ANT_HOME environment value pointing to the root of your Ant installation, and a JAVA_HOME value pointing to your Java installation. Additionally, you should ensure Ant's ant command, and the Java javac compiler command run from the command shell that your operating system provides. </p> <ol> <li>Download the TCD distribution <li> The TCD package need not be extracted into any existing Tomcat installation, it can be extracted to any location. </li> <li>Read Using the Tomcat Client Deployer</a> </ol> </section> <section name="A word on Contexts"> <p> In talking about deployment of web applications, the concept of a <i>Context is required to be understood. A Context is what Tomcat calls a web application. </p> <p> In order to configure a Context within Tomcat a <i>Context Descriptor is required. A Context Descriptor is simply an XML file that contains Tomcat related configuration for a Context, e.g naming resources or session manager configuration. In earlier versions of Tomcat the content of a Context Descriptor configuration was often stored within Tomcat's primary configuration file <i>server.xml but this is now discouraged (although it currently still works). </p> <p> Context Descriptors not only help Tomcat to know how to configure Contexts but other tools such as the Tomcat Manager and TCD often use these Context Descriptors to perform their roles properly. </p> <p> The locations for Context Descriptors are; <ol> <li>$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml <li>$CATALINA_HOME/webapps/[webappname]/META-INF/context.xml </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, Tomcat configures the Context using default values. </p> </section> <section name="Deployment on Tomcat startup"> <p> If you are not interested in using the Tomcat Manager, or TCD, then you'll need to deploy your web applications statically to Tomcat, followed by a Tomcat startup. The location you deploy web applications to for this type of deployment is called the <code>appBase which is specified per Host. You either copy a so-called <i>exploded web application, i.e non-compressed, to this location, or a compressed web application resource .WAR file. </p> <p> The web applications present in the location specified by the Host's (default Host is "localhost") <code>appBase attribute (default appBase is "$CATALINA_HOME/webapps") will be deployed on Tomcat startup only if the Host's <code>deployOnStartup attribute is "true". </p> <p> The following deployment sequence will occur on Tomcat startup in that case: </p> <ol> <li>Any Context Descriptors will be deployed first. <li> Exploded web applications not referenced by any Context Descriptor will then be deployed. If they have an associated .WAR file in the appBase and it is newer than the exploded web application, the exploded directory will be removed and the webapp will be redeployed from the .WAR </li> <li>.WAR files will be deployed </ol> <p> Note again that for each deployed web application, a Context Descriptor will be created <i>unless one exists already. </p> </section> <section name="Deploying on a running Tomcat server"> <p> It is possible to deploy web applications to a running Tomcat server. </p> <p> If the Host <code>autoDeploy attribute is "true", the Host will attempt to deploy and update web applications dynamically, as needed, for example if a new .WAR is dropped into the <code>appBase. For this to work, the Host needs to have background processing enabled which is the default configuration. </p> <p> <code>autoDeploy set to "true" and a running Tomcat allows for: </p> <ul> <li>Deployment of .WAR files copied into the Host
Other Tomcat examples (source code examples)
Here is a short list of links related to this Tomcat deployer-howto.xml source code file:
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.