Index: deployer-howto.xml =================================================================== RCS file: /home/cvspublic/jakarta-tomcat-catalina/webapps/docs/deployer-howto.xml,v retrieving revision 1.7 diff -u -r1.7 deployer-howto.xml --- deployer-howto.xml 1 Sep 2004 22:04:28 -0000 1.7 +++ deployer-howto.xml 25 Aug 2005 22:47:16 -0000 @@ -8,173 +8,321 @@ Remy Maucherat - Deployer HOW-TO + Tomcat Web Application Deployment -
- -

-Introduction
-Context XML descriptors
-Deploying on Tomcat startup
-Deploying on running Tomcat server
-Deploying using the Client Deployer Package
-

-
-

- -
- -
- -

The deployer, as its name implies, allows deploying and undeploying web -applications to the Tomcat server, either statically (the application is -setup before the server is started), or dynamically (in conjunction with the -Tomcat Manager web application or manipulating already deployed applications). -

- -
- -
- -

A Context XML descriptor is a fragment of XML data which contains a valid -Context element which would normally be found in the main server configuration -file (conf/server.xml), and allows easy and automated manipulation -of web applications by the various management tools available in Tomcat. -For a given host, the Context descriptors are located in -$CATALINA_HOME/conf/[enginename]/[hostname]/foo.xml. Note that -while the name of the file is not tied to the webapp name, Tomcat will create -Context descriptors which match the webapp name whenever it will generate a -Context descriptor. -

- -

Context descriptors allow defining all aspects and configuration parameters -of a Context, such as naming resources and session manager configuration. -It should be noted that the docBase specified in the Context element can -refer to either the .WAR or the directory which will be created when the -.WAR is expanded or the .WAR itself.

- -
- -
- -

The webapps which are present in the host appBase will be deployed if the -host "deployOnStartup" property is true. The deployment process is -the following: -

-For each deployed web application, a matching Context XML descriptor will be -created unless one exists already. -

- -
- -
- -

If the host "autoDeploy" property is true, the host will attempt to deploy -and update web applications dynamically, as needed. The host will need to -have background processing enabled for automatic reloading to work, which -is the default.

- -

This includes: -

-Note: Web application reloading can also be configured in the loader, in which -case loaded classes will be tracked for changes. -

- -
- -
- -

The client deployer is a package which can be used to validate, compile, -and deploy a web application to a production or development server. It should -be noted that this feature uses the Tomcat manager for automatic deployment. -

- -

The deployer includes the Catalina manager Ant tasks, the Jasper page -compiler for JSP compilation before deployment, as well as a task which -validates the webapp's deployment descriptor. The validator task (class -org.apache.catalina.ant.ValidatorTask) allows only one parameter: -the base path of an expanded web application.

- -

The deployer uses an unpacked web application as input (see the list of the -properties used by the deployer below). A web application which -is programatically deployed with the deployer may include Tomcat specific -deployment configuration, by including a Context configuration XML file in -/META-INF/context.xml.

- -

The deployer package includes a ready to use Ant script, with the following -targets: -

-The following properties can be specified, either as system properties, or by -using a deployer.properties file located in the root folder of the -deployer package: - -

- -
+
+ + +
+ +
+

+ 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. +

+

+ Web application deployment may be accomplished in a number of ways + within the Tomcat server. +

+

+

+ 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. +

+
+ +
+

+ 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). +

+

+ 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 + jakarta-tomcat-5.5.x-deployer. +

+

+ 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. +

+
    +
  1. Download the TCD distribution
  2. +
  3. + The TCD package need not be extracted into any existing Tomcat + installation, it can be extracted to any location. +
  4. +
  5. Read Using the Tomcat Client Deployer
  6. +
+
+ +
+

+ In talking about deployment of web applications, the concept of a + Context is required to be understood. A Context is what Tomcat + calls a web application. +

+

+ In order to configure a Context within Tomcat a 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 server.xml but this is now + discouraged (although it currently still works). +

+

+ Context Descriptors not only help Tomcat to know how to configure + Contexts but other tools such as the Tomcat Manager and TDC often use + these Context Descriptors to perform their roles properly. +

+

+ The locations for Context Descriptors are; +

    +
  1. $CATALINA_HOME/conf/[enginename]/[hostname]/context.xml
  2. +
  3. $CATALINA_HOME/webapps/[webappname]/META-INF/context.xml
  4. +
+ If a Context Descriptor is not provided for a Context, Tomcat + automatically creates one and places it in (1) with a filename of + [webappname].xml although if manually created, the filename need not + match the web application name as Tomcat is concerned only with the + Context configuration contained within the Context Descriptor file(s). +

+
+ +
+

+ 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 + appBase which is specified per Host. You either copy a + so-called exploded web application, i.e non-compressed, to this + location, or a compressed web application resource .WAR file. +

+

+ The web applications present in the location specified by the Host's + (default Host is "localhost") appBase attribute (default + appBase is "$CATALINA_HOME/webapps") will be deployed on Tomcat startup + only if the Host's deployOnStartup attribute is "true". +

+

+ The following deployment sequence will occur on Tomcat startup in that + case: +

+
    +
  1. Any Context Descriptors will be deployed first.
  2. +
  3. + 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 +
  4. +
  5. .WAR files will be deployed
  6. +
+

+ Note again that for each deployed web application, a + Context Descriptor will be created unless one exists already. +

+
+ +
+

+ It is possible to deploy web applications to a running Tomcat server. +

+

+ If the Host 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 appBase. + For this to work, the Host needs to have background processing + enabled which is the default configuration. +

+ +

+ autoDeploy set to "true" and a running Tomcat allows for: +

+ +

+ Note that web application reloading can also be configured in the loader, in which + case loaded classes will be tracked for changes. +

+
+ +
+

+ The Tomcat Manager is covered in its own manual page. +

+
+ +
+

+ Finally, deployment of web application may be achieved using the + Tomcat Client Deployer. This is a package which can be used to + validate, compile, compress to .WAR, and deploy web applications to + production or development Tomcat servers. It should be noted that this feature + uses the Tomcat Manager and as such the target Tomcat server should be + running. +

+ +

+ It is assumed the user will be familar with Apache Ant for using the TCD. + Apache Ant is a scripted build tool. The TCD comes pre-packaged with a + build script to use. Only a modest understanding of Apache Ant is + required (installation as listed earlier in this page, and familiarity + with using the operating system command shell and configuring + environment variables). +

+ +

+ The TCD includes Ant tasks, the Jasper page compiler for JSP compilation + before deployment, as well as a task which + validates the web application Context Descriptor. The validator task (class + org.apache.catalina.ant.ValidatorTask) allows only one parameter: + the base path of an exploded web application. +

+ +

+ The TCD uses an exploded web application as input (see the list of the + properties used below). A web application that is programatically + deployed with the deployer may include a Context Desciptor in + /META-INF/context.xml. +

+ +

+ The TCD includes a ready-to-use Ant script, with the following targets: +

+ + +

+ In order for the deployment to be configured, create a file + called deployer.properties in the TCD installation + directory root. In this file, add the following name=value pairs per + line: +

+ +

+ Additionally, you will need to ensure that a user has been + setup for the target Tomcat Manager (which TCD uses) otherwise the TCD + will not authenticate with the Tomcat Manager and the deployment will + fail. To do this, see the Tomcat Manager page. +

+ + +