remm        2005/08/26 05:30:11

  Modified:    webapps/docs deployer-howto.xml
  Log:
  - Brand new deployer specs.
  - Submitted by Allistair Crossley.
  
  Revision  Changes    Path
  1.8       +313 -164  jakarta-tomcat-catalina/webapps/docs/deployer-howto.xml
  
  Index: deployer-howto.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/deployer-howto.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- deployer-howto.xml        1 Sep 2004 22:04:28 -0000       1.7
  +++ deployer-howto.xml        26 Aug 2005 12:30:11 -0000      1.8
  @@ -7,174 +7,323 @@
       &project;
   
       <properties>
  -        <author email="[EMAIL PROTECTED]">Remy Maucherat</author>
  -        <title>Deployer HOW-TO</title>
  +        <author>Allistair Crossley</author>
  +        <title>Tomcat Web Application Deployment</title>
       </properties>
   
   <body>
   
  -<section name="Table of Contents">
  -
  -<p>
  -<a href="#Introduction">Introduction</a><br />
  -<a href="#Context descriptors">Context XML descriptors</a><br />
  -<a href="#Deploying on Tomcat startup">Deploying on Tomcat startup</a><br />
  -<a href="#Deploying on a running Tomcat server">Deploying on running Tomcat 
server</a><br />
  -<a href="#Deploying using the Client Deployer Package">Deploying using the 
Client Deployer Package</a><br />
  -<blockquote>
  -</blockquote>
  -</p>
  -
  -</section>
  -
  -<section name="Introduction">
  -
  -<p>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).
  -</p>
  -
  -</section>
  -
  -<section name="Context descriptors">
  -
  -<p>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 
  -<code>$CATALINA_HOME/conf/[enginename]/[hostname]/foo.xml</code>. 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.
  -</p>
  -
  -<p>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.</p>
  -
  -</section>
  -
  -<section name="Deploying on Tomcat startup">
  -
  -<p>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:
  -<ul>
  -    <li>The Context XML declarations will be deployed first</li>
  -    <li>Expanded web applications not referenced by Context XML declarations
  -        will then be deployed; if they have an associated .WAR file and it is
  -        newer than the expanded web application, the expanded directory will
  -        be removed and the webapp will be redeployed from the .WAR</li>
  -    <li>.WAR files will be deployed</li>
  -</ul>
  -For each deployed web application, a matching Context XML descriptor will be
  -created unless one exists already.
  -</p>
  -
  -</section>
  -
  -<section name="Deploying on a running Tomcat server">
  -
  -<p>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.</p>
  -
  -<p>This includes:
  -<ul>
  -    <li>Deployment of WARs which are copied to the host appBase.</li>
  -    <li>Deployment of expanded web applications which are copied to the host
  -        appBase.</li>
  -    <li>Redeployment of a web application which has been deployed from a WAR
  -        when the WAR is updated: the expanded web application is removed, 
  -        and the WAR is expanded again. This will not happen if the host is
  -        configured so that WARs are not expanded, in which case the webapp
  -        will be simply redeployed.</li>
  -    <li>Redeployment of the web application if the /WEB-INF/web.xml file is
  -        updated.</li>
  -    <li>Redeployment of the web application if the context XML file from 
which
  -        the web application has been deployed is updated.</li>
  -    <li>Redeployment of the web application if a context XML file (with a
  -        name corresponding to the context path of the previously deployed
  -        application) is added in the 
  -        <code>$CATALINA_HOME/conf/[enginename]/[hostname]/</code> 
folder.</li>
  -    <li>Undeployment of the web application if its document base is deleted
  -        (on Windows, this assumes that anti locking features are enabled, 
otherwise
  -        it is not possible to delete the resources of a running web 
application).</li>
  -</ul>
  -Note: Web application reloading can also be configured in the loader, in 
which
  -case loaded classes will be tracked for changes.
  -</p>
  -
  -</section>
  -
  -<section name="Deploying using the Client Deployer Package">
  -
  -<p>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.
  -</p>
  -
  -<p>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
  -<code>org.apache.catalina.ant.ValidatorTask</code>) allows only one 
parameter:
  -the base path of an expanded web application.</p>
  -
  -<p>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 
  -<code>/META-INF/context.xml</code>.</p>
  -
  -<p>The deployer package includes a ready to use Ant script, with the 
following
  -targets:
  -<ul>
  -    <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 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 
  -        <code>/WEB-INF/classes</code> folder of the web application.</li>
  -    <li><code>deploy</code>: Deploy a web application (compiled or not) to 
  -        a Tomcat server</li>
  -    <li><code>undeploy</code>: Undeploy a web application</li>
  -    <li><code>start</code>: Start web application</li>
  -    <li><code>reload</code>: Reload web application</li>
  -    <li><code>stop</code>: Stop web application</li>
  -</ul>
  -The following properties can be specified, either as system properties, or by
  -using a <code>deployer.properties</code> file located in the root folder of 
the
  -deployer package:
  -<ul>
  -    <li><code>build</code>: The build folder used will be, by default, 
  -        <code>${build}/webapp${path}</code>. After the end of the execution
  -        of the <code>compile</code> target, the web application WAR will be
  -        located at <code>${build}/webapp${path}.war</code>.</li>
  -    <li><code>webapp</code>: Folder containing the expanded web application 
  -        which will be compiled and validated. By default, the folder is
  -        <code>myapp</code>.</li>
  -    <li><code>path</code>: Deployed context path of the web application, 
  -        by default <code>/myapp</code>.</li>
  -    <li><code>url</code>: Absolute URL to the manager web application of a 
  -        running Tomcat server, which will be used to deploy and undeploy the
  -        web application. By default, the deployer will attempt to access 
  -        a Tomcat instance running on localhost, at 
  -        <code>http://localhost:8080/manager</code>.</li>
  -    <li><code>username</code>: Username to be used to connect to the Tomcat 
  -        manager.</li>
  -    <li><code>password</code>: Password to be used to connect to the Tomcat
  -        manager.</li>
  -</ul>
  -</p>
  -
  -</section>
  +    <section name="Table of Contents">
  +    <ul>
  +        <li><a href="#Introduction">Introduction</a></li>
  +        <li><a href="#Installation">Installation</a></li>
  +        <li><a href="#A word on Contexts">A word on Contexts</a></li>
  +        <li><a href="#Deployment on Tomcat startup">Deployment on Tomcat 
startup</a></li>
  +        <li><a href="#Deploying on a running Tomcat server">Deploying on a 
running Tomcat server</a></li>
  +        <li><a href="#Deploying using the Tomcat Manager">Deploying using 
the Tomcat Manager</a></li>
  +        <li><a href="#Deploying using the Client Deployer Package">Deploying 
using
  +            the Tomcat Client Deployer</a></li>
  +    </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>
  +                <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>jakarta-tomcat-5.5.x-deployer</i>.
  +        </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>
  +            <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 <a href="#Deploying using the Client Deployer 
Package">
  +            Tomcat Client Deployer</a></li>
  +        </ol>
  +    </section>
  +        
  +    <section name="A word on Contexts">
  +        <p>
  +            In talking about deployment of web applications, the concept of a
  +            <i>Context</i> 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</i>
  +            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</i> 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 TDC 
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>
  +                
<li>$CATALINA_HOME/webapps/[webappname]/META-INF/context.xml</li>
  +            </ol>
  +            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).
  +        </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</code> which is specified per Host. You either 
copy a
  +            so-called <i>exploded web application</i>, 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</code> attribute 
(default
  +            appBase is "$CATALINA_HOME/webapps") will be deployed on Tomcat 
startup 
  +            only if the Host's <code>deployOnStartup</code> 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>
  +            <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</li>
  +        </ol>
  +        <p>
  +            Note again that for each deployed web application, a 
  +            Context Descriptor will be created <i>unless one exists 
already</i>.
  +        </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</code> 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</code>. 
  +            For this to work, the Host needs to have background processing 
  +            enabled which is the default configuration.
  +        </p>
  +        
  +        <p>
  +            <code>autoDeploy</code> set to "true" and a running Tomcat 
allows for:
  +        </p>
  +        <ul>
  +            <li>Deployment of .WAR files copied into the Host 
<code>appBase</code>.</li>
  +            <li>
  +                Deployment of exploded web applications which are
  +                copied into the Host <code>appBase</code>.
  +            </li>
  +            <li>
  +                Re-deployment of a web application which has already been 
deployed from
  +                a .WAR when the new .WAR is provided. In this case the 
exploded 
  +                web application is removed, and the .WAR is expanded again. 
  +                Note that the explosion will not occur if the Host is 
configured 
  +                so that .WARs are not exploded with a <code>unpackWARs</code>
  +                attribute set to "false", in which case the web application 
  +                will be simply redeployed as a compressed archive.
  +            </li>
  +            <li>
  +                Re-deployment of a web application if the /WEB-INF/web.xml 
file (or any
  +                other resource defined as a WatchedResource) is updated.
  +            </li>
  +            <li>
  +                Re-deployment of a web application if the Context Descriptor 
file from which
  +                the web application has been deployed is updated.
  +            </li>
  +            <li>
  +                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>
  +                directory.
  +            </li>
  +            <li>
  +                Undeployment of a web application if its document base 
(docBase)
  +                is deleted. Note that on Windows, this assumes that 
anti-locking 
  +                features (see Context configuration) are enabled, otherwise 
it is not 
  +                possible to delete the resources of a running web 
application.
  +            </li>
  +        </ul>
  +        <p>
  +            Note that web application reloading can also be configured in 
the loader, in which
  +            case loaded classes will be tracked for changes.
  +        </p>
  +    </section>
  +    
  +    <section name="Deploying using the Tomcat Manager">
  +        <p>
  +            The Tomcat Manager is covered in its <a 
href="manager-howto.html">own manual page</a>. 
  +        </p>
  +    </section>
  +        
  +    <section name="Deploying using the Client Deployer Package">
  +        <p>
  +            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.
  +        </p>
  +    
  +        <p>
  +            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).
  +        </p>
  +        
  +        <p>
  +            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
  +            <code>org.apache.catalina.ant.ValidatorTask</code>) allows only 
one parameter:
  +            the base path of an exploded web application.
  +        </p>
  +    
  +        <p>
  +            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 
  +            <code>/META-INF/context.xml</code>.
  +        </p>
  +    
  +        <p>
  +            The TCD includes a ready-to-use Ant script, with the following 
targets:
  +        </p>
  +        <ul>
  +            <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 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 
  +                <code>/WEB-INF/classes</code> folder of the web 
application.</li>
  +            <li>
  +                <code>deploy</code>: Deploy a web application (compiled or 
not) to 
  +                a Tomcat server.
  +            </li>
  +            <li><code>undeploy</code>: Undeploy a web application</li>
  +            <li><code>start</code>: Start web application</li>
  +            <li><code>reload</code>: Reload web application</li>
  +            <li><code>stop</code>: Stop web application</li>
  +        </ul>
  +        
  +        <p>
  +            In order for the deployment to be configured, create a file
  +            called <code>deployer.properties</code> in the TCD installation
  +            directory root. In this file, add the following name=value pairs 
per
  +            line:
  +        </p>
  +        
  +        <p>
  +            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.        
  +        </p>
  +        
  +        <ul>
  +            <li>
  +                <code>build</code>: The build folder used will be, by 
default, 
  +                <code>${build}/webapp/${path}</code>. After the end of the 
execution
  +                of the <code>compile</code> target, the web application .WAR 
will be
  +                located at <code>${build}/webapp/${path}.war</code>.
  +            </li>
  +            <li>
  +                <code>webapp</code>: The directory containing the exploded 
web application 
  +                which will be compiled and validated. By default, the folder 
is
  +                <code>myapp</code>.
  +            </li>
  +            <li>
  +                <code>path</code>: Deployed context path of the web 
application, 
  +                by default <code>/myapp</code>.
  +            </li>
  +            <li>
  +                <code>url</code>: Absolute URL to the Tomcat Manager web 
application of a 
  +                running Tomcat server, which will be used to deploy and 
undeploy the
  +                web application. By default, the deployer will attempt to 
access 
  +                a Tomcat instance running on localhost, at 
  +                <code>http://localhost:8080/manager</code>.
  +            </li>
  +            <li>
  +                <code>username</code>: Tomcat Manager username (user should 
have a role of
  +                manager)
  +            </li>
  +            <li><code>password</code>: Tomcat Manager password.</li>
  +        </ul>
  +    </section>
   
   </body>
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to