<section name="Comet support">
<p>
- Comet support allows a servlet to process IO aynchronously, receiving
+ Comet support allows a servlet to process IO asynchronously, receiving
events when data is available for reading on the connection (rather than
always using a blocking read), and writing data back on connections
- asychnonously (most likely responding to some event raised from some
+ asynchronously (most likely responding to some event raised from some
other source).
</p>
fields using the request and response objects. Between the end of the processing
of this event, and the beginning of the processing of the end or error events,
it is possible to use the response object to write data on the open connection.
- Note that the response object and depedent OutputStream and Writer are still
+ Note that the response object and dependent OutputStream and Writer are still
not synchronized, so when they are accessed by multiple threads,
synchronization is mandatory. After processing the initial event, the request
is considered to be committed.</li>
src Java source code (and associated resource files)
to be compiled to the "WEB-INF/classes"
- subdirectory of your web applicaiton.
+ subdirectory of your web application.
web Static HTML, JSP, and other content (such as
image files), including the WEB-INF subdirectory
web applications with Tomcat.</p>
<ul>
<li><a href="http://java.sun.com/products/jsp/download.html">http://java.sun.com/products/jsp/download.html</a> -
- <i>JavaServer Pages (JSP) Specfication, Version 2.0</i>. Describes
+ <i>JavaServer Pages (JSP) Specification, Version 2.0</i>. Describes
the programming environment provided by standard implementations
of the JavaServer Pages (JSP) technology. In conjunction with
the Servlet API Specification (see below), this document describes
<code>build.xml</code> file will contain internal documentation describing
the targets that are designed for use by the developer, versus those targets
used internally. To ask Ant to display the project documentation, change to
-the directory containing the <code>build.xml</code> flie and type:</p>
+the directory containing the <code>build.xml</code> file and type:</p>
<source>
ant -projecthelp
</source>
submits in the app will be submitted to a request URI like
"saveCustomer.do", which will therefore be mapped to this servlet.
- The initialization parameter namess for this servlet are the
+ The initialization parameter names for this servlet are the
"servlet path" that will be received by this servlet (after the
filename extension is removed). The corresponding value is the
name of the action class that will be used to process this request.
<subsection name="HTTP">
<p>
- When APR is enabled, the HTTP connector will use sendfile for hadling large static files (all such
- files will be sent ansychronously using high performance kernel level calls), and will use
+ When APR is enabled, the HTTP connector will use sendfile for handling large static files (all such
+ files will be sent asynchronously using high performance kernel level calls), and will use
a socket poller for keepalive, increasing scalability of the server.
</p>
</attribute>
<attribute name="SSLPassword" required="false">
<p>
- Pass phrase for the encrypted private key. If "SSLPassword" is not provided, the callback fonction
+ Pass phrase for the encrypted private key. If "SSLPassword" is not provided, the callback function
should prompt for the pass phrase.
</p>
</attribute>
</p>
<p>
In recent releases of Tomcat, mostly starting with Tomcat 5,
-we have begun effots to make more aspects of Tomcat managable via
+we have begun efforts to make more aspects of Tomcat manageable via
JMX. In addition, the Manager and Admin webapps have been greatly
-enhanced and improved. Managability is a primary area of concern
+enhanced and improved. Manageability is a primary area of concern
for us as the product matures and the specification becomes more
stable.
</p>
<subsection name="comments">
<p>
The Servlet Specification provides many opportunities for
-listening in (using Listeners) or modiying (using Filters)
+listening in (using Listeners) or modifying (using Filters)
the request handling process even before the request arrives
at the servlet that will handle it.
</p>
XML-object mapping tool, that will create the objects defined in server.xml
Startup of the actual container has not started yet.
b5) Assigns System.out and System.err to the SystemLogHandler class
- b6) Calls intialize on all components, this makes each object register itself with the
+ b6) Calls initialize on all components, this makes each object register itself with the
JMX agent.
During the process call the Connectors also initialize the adapters.
The adapters are the components that do the request pre-processing.
invokes the invoke() method on the Host pipeline (StandardHost.getPipeLine())
d9) the StandardHost has two valves by default, the StandardHostValve and the ErrorReportValve
d10) The standard host valve associates the correct class loader with the current thread
- It also retrives the Manager and the session associated with the request (if there is one)
+ It also retrieves the Manager and the session associated with the request (if there is one)
If there is a session access() is called to keep the session alive
d11) After that the StandardHostValve invokes the pipeline on the context associated
with the request.
valve. Then the StandardContextValve gets invoke.
The StandardContextValve invokes any context listeners associated with the context.
Next it invokes the pipeline on the Wrapper component (StandardWrapperValve)
- d13) During the invokation of the StandardWrapperValve, the JSP wrapper (Jasper) gets invoked
+ d13) During the invocation of the StandardWrapperValve, the JSP wrapper (Jasper) gets invoked
This results in the actual compilation of the JSP.
And then invokes the actual servlet.
- e) Invokation of the servlet class
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ e) Invocation of the servlet class
<section name="Using Apache HTTP Server 2.x with mod_proxy">
Please refer to the mod_proxy documentation for Apache HTTP Server 2.2. This supports either
-HTTP or AJP load balancing. This new version of mod_proxy is also useable with
+HTTP or AJP load balancing. This new version of mod_proxy is also usable with
Apache HTTP Server 2.0, but mod_proxy will have to be compiled separately using the code
from Apache HTTP Server 2.2.
loading looks in the following repositories, in this order:</p>
<ul>
<li>Bootstrap classes of your JVM</li>
-<li>System class loader classses (described above)</li>
+<li>System class loader classes (described above)</li>
<li><em>/WEB-INF/classes</em> of your web application</li>
<li><em>/WEB-INF/lib/*.jar</em> of your web application</li>
<li><em>$CATALINA_HOME/lib</em></li>
</source>
<p>What is important to mention here, is that session replication is only the beginning of clustering.
- Another popular concept used to implement clusters is farming, ie, you deploy your apps only to one
+ Another popular concept used to implement clusters is farming, i.e., you deploy your apps only to one
server, and the cluster will distribute the deployments across the entire cluster.
This is all capabilities that can go into with the FarmWarDeployer (s. cluster example at <code>server.xml</code>)</p>
<p>In the next section will go deeper into how session replication works and how to configure it.</p>
One of the most important performance considerations is the synchronous versus asynchronous replication.
In a synchronous replication mode the request doesn't return until the replicated session has been
sent over the wire and reinstantiated on all the other cluster nodes.
- Synchronous vs asynchronous is configured using the <code>channelSendOptions</code>
+ Synchronous vs. asynchronous is configured using the <code>channelSendOptions</code>
flag and is an integer value. The default value for the <code>SimpleTcpCluster/DeltaManager</code> combo is
8, which is asynchronous. You can read more on the <a href="tribes/introduction.html">send flag(overview)</a> or the
<a href="http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/tribes/Channel.html">send flag(javadoc)</a>.
<p>
<b>Hint:</b><br/>
With attribute <i>sessionIdAttribute</i> you can change the request attribute name that included the old session id.
- Default attribuite name is <i>org.apache.catalina.cluster.session.JvmRouteOrignalSessionID</i>.
+ Default attribute name is <i>org.apache.catalina.cluster.session.JvmRouteOrignalSessionID</i>.
</p>
<p>
<b>Trick:</b><br/>
The standard protocol value for an AJP connector is <code>AJP/1.3</code>
which uses an auto-switching mechanism to select either a Java based
connector or an APR/native based connector. If the
- <code>PATH(Windows)</code> or <code>LD_LIBRARY_PATH</code> (on most unix
- system) environment variables contain the Tomcat native library, the
+ <code>PATH</code> (Windows) or <code>LD_LIBRARY_PATH</code> (on most unix
+ systems) environment variables contain the Tomcat native library, the
native/APR connector will be used. If the native library cannot be
found, the Java based connector will be used.<br/>
To use an explicit protocol rather than rely on the auto-switching
<p>This specifies if the encoding specified in contentType should be used
for URI query parameters, instead of using the URIEncoding. This
setting is present for compatibility with Tomcat 4.1.x, where the
- encoding specified in the contentType, or explicitely set using
+ encoding specified in the contentType, or explicitly set using
Request.setCharacterEncoding method was also used for the parameters from
the URL. The default value is <code>false</code>.
</p>
<attribute name="xpoweredBy" required="false">
<p>Set this attribute to <code>true</code> to cause Tomcat to advertise
- support for the Srevlet specification using the header recommended in the
+ support for the Servlet specification using the header recommended in the
specification. The default value is <code>false</code>.</p>
</attribute>
</attribute>
<attribute name="request.shutdownEnabled" required="false">
- <p>If true and a secret has been configured, a correctly fomatted AJP
+ <p>If true and a secret has been configured, a correctly formatted AJP
request (that includes the secret) will shutdown the Tomcat instance
associated with this connector. This is set to <code>false</code> by
default.</p>
</attribute>
<attribute name="tomcatAuthentication" required="false">
- <p>If set to <code>true</code>, the authetication will be done in Tomcat.
+ <p>If set to <code>true</code>, the authentication will be done in Tomcat.
Otherwise, the authenticated principal will be propagated from the native
webserver and used for authorization in Tomcat.
The default value is <code>true</code>.</p>
</attribute>
<attribute name="maxQueueSize" required="false">
Size in bytes of the dispatch queue, the default value is <code> 1024*1024*64 (64MB)</code> sets the maximum queue size for the dispatch queue
- if the queue fills up, one can trigger the behavior, if <code>alwaysSend</code> is set to true, the mesage will be sent synchronously
+ if the queue fills up, one can trigger the behavior, if <code>alwaysSend</code> is set to true, the message will be sent synchronously
if the flag is false, an error is thrown
</attribute>
</attributes>
</attribute>
<attribute name="recoveryEnabled" required="false">
<p>
- In case of a network failure, Java multicast socket don't transparently fail over, instead the socket will continously
+ In case of a network failure, Java multicast socket don't transparently fail over, instead the socket will continuously
throw IOException upon each receive request. When recoveryEnabled is set to true, this will close the multicast socket
and open a new socket with the same properties as defined above.<br/>
The default is <code>true</code>. <br/>
<attribute name="maxThreads" required="false">
The maximum number of threads in the receiver thread pool. The default value is <code>6</code>
Adjust this value relative to the number of nodes in the cluster, the number of messages being exchanged and
- the hardware you are running on. A higher value doesn't mean more effiecency, tune this value according to your
+ the hardware you are running on. A higher value doesn't mean more efficiency, tune this value according to your
own test results.
</attribute>
<attribute name="minThreads" required="false">
When is this useful? The simplest example we can think of is when part of your code is sending a 10MB message,
like a war file being deployed, and you need to push through a small 10KB message, say a session being replicated,
you don't have to wait for the 10MB message to finish, as a separate thread will push in the small message
- transmission at the same time. Currently there is no interrupt, pause or priority mechanism avaiable, but check back soon.
+ transmission at the same time. Currently there is no interrupt, pause or priority mechanism available, but check back soon.
</p>
</section>
you would set all the socket options for the outgoing messages. Please see its attributes below.
There are two implementations, in a similar manner to the <a href="cluster-receiver.html">receiver</a>, one is non-blocking
based and the other is built using blocking IO. <br/>
- <code>org.apache.catalina.tribes.transport.bio.PooledMultiSender</code> is the blocking implemenation and
+ <code>org.apache.catalina.tribes.transport.bio.PooledMultiSender</code> is the blocking implementation and
<code>org.apache.catalina.tribes.transport.nio.PooledParallelSender</code>.
Parallel delivery is not available for the blocking implementation due to the fact that it is blocking a thread on sending data.
</p>
<section name="Introduction">
<p>
A cluster valve is no different from any other <a href="valve.html">Tomcat <code>Valve</code></a>.
- The cluster valves are interceptors in the invokation chain for HTTP requests, and the clustering implementation
+ The cluster valves are interceptors in the invocation chain for HTTP requests, and the clustering implementation
uses these valves to make intelligent decision around data and when data should be replicated.
</p>
<p>
<p>
<b>Deprecated settings:</b> In the previous version of Tomcat you were able to control session
manager settings using manager.<property>=value.
- This has been discontinued, as the way it was written interfers with
+ This has been discontinued, as the way it was written interferes with
the ability to support multiple different manager classes under one cluster implementation,
as the same properties might have the different effect on different managers.
</p>
<p><b>For Tomcat 6, unlike Tomcat 4.x, it is NOT recommended to place
<Context> elements directly in the server.xml file.</b> This
- is because it makes modifing the <strong>Context</strong> configuration
+ is because it makes modifying the <strong>Context</strong> configuration
more invasive since the main <code>conf/server.xml</code> file cannot be
reloaded without restarting Tomcat.</p>
from a default context will be used.</p>
<p>If a symbolic link is used for docBase then changes to the
symbolic link will only be effective after a Tomcat restart or
- by undeploying and redeploying the conext. A context reload is not
+ by undeploying and redeploying the context. A context reload is not
sufficient.</p>
</attribute>
<subsection name="Automatic Context Configuration">
<p>If you use the standard <strong>Context</strong> implementation,
- the following configuration steps occur automtically when Catalina
+ the following configuration steps occur automatically when Catalina
is started, or whenever this web application is reloaded. No special
configuration is required to enable this feature.</p>
<attribute name="name" required="true">
<p>Logical name of this Engine, used in log and error messages. <em>When
- using muliple <a href="service.html">Service</a> elements in the same
+ using multiple <a href="service.html">Service</a> elements in the same
<a href="server.html">Server</a>, each Engine MUST be assigned a unique
name.</em></p>
</attribute>
nesting a <strong>Listener</strong> element inside this element. The
class name you specify must implement the
<code>org.apache.catalina.LifecycleListener</code> interface, and
- it will be notified about the occurrence of the coresponding
+ it will be notified about the occurrence of the corresponding
lifecycle events. Configuration of such a listener looks like this:</p>
<source>
<subsection name="Initialisation parameters">
- <p>The Add Default Character Set Filter does not support any initialisation
+ <p>The Add Default Character Set Filter does not support any initialization
parameters</p>
</subsection>
<p>but does <em>not</em> require modification of the deployment
descriptor to customize this value.</p>
- <p>The valid attriutes for a <code><Resource></code> element
+ <p>The valid attributes for a <code><Resource></code> element
are as follows:</p>
<attributes>
<attribute name="auth" required="false">
<p>Specify whether the web Application code signs on to the
- corresponding resource manager programatically, or whether the
+ corresponding resource manager programmatically, or whether the
Container will sign on to the resource manager on behalf of the
application. The value of this attribute must be
<code>Application</code> or <code>Container</code>. This
<attribute name="deployXML" required="false">
<p>Set to <code>false</code> if you want to disable parsing the context.xml
file embedded inside the application (located at <code>/META-INF/context.xml</code>).
- Security consious environments should set this to <code>false</code> to prevent
+ Security conscious environments should set this to <code>false</code> to prevent
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
<attribute name="errorReportValveClass" required="false">
<p>Java class name of the error reporting valve which will be used
- by this Host. The responsability of this valve is to output error
+ by this Host. The responsibility of this valve is to output error
reports. Setting this property allows to customize the look of the
error pages which will be generated by Tomcat. This class must
implement the
<p>A host is associated with the
<code>org.apache.catalina.core.ContainerBase.[enginename].[hostname]</code>
- log category. Note that the brackets are actuall part of the name,
+ log category. Note that the brackets are part of the name,
don't omit them.</p>
</subsection>
that the updated WAR file will be re-expanded (note that the auto
deployer, if enabled, will automatically expand the updated WAR file
once the previously expanded directory is removed). Multi-level contexts
- may be defined by using #, eg use a WAR named <code>foo#bar.war</code>
+ may be defined by using #, e.g. use a WAR named <code>foo#bar.war</code>
for a context path of <code>/foo/bar</code>.</li>
<li>Any subdirectory within the <em>application base directory</em>
will receive an automatically generated <a href="context.html">
deployed Context will be a slash character ("/") followed by the
directory name, unless the directory name is ROOT, in which case
the context path will be an empty string (""). Multi-level contexts
- may be defined by using #, eg use a directory named <code>foo#bar</code>
+ may be defined by using #, e.g. use a directory named <code>foo#bar</code>
for a context path of <code>/foo/bar</code>.</li>
</ul>
<strong>Host</strong> element in <code>conf/server.xml</code>, each
with its own set of web applications.</p>
- <p>However, in some circumstances, it is desireable that two or more
+ <p>However, in some circumstances, it is desirable that two or more
network names should resolve to the <strong>same</strong> virtual host,
running the same set of applications. A common use case for this
- scenario is a corporate web site, where it is desireable that users
+ scenario is a corporate web site, where it is desirable that users
be able to utilize either <code>www.mycompany.com</code> or
<code>company.com</code> to access exactly the same content and
applications.</p>
nesting a <strong>Listener</strong> element inside this element. The
class name you specify must implement the
<code>org.apache.catalina.LifecycleListener</code> interface, and
- it will be notified about the occurrence of the coresponding
+ it will be notified about the occurrence of the corresponding
lifecycle events. Configuration of such a listener looks like this:</p>
<source>
Sets the protocol to handle incoming traffic.
The default value is <code>HTTP/1.1</code> which uses an auto-switching
mechanism to select either a blocking Java based connector or an
- APR/native based connector. If the <code>PATH(Windows)</code> or
- <code>LD_LIBRARY_PATH</code> (on most unix system) environment variables
+ APR/native based connector. If the <code>PATH</code> (Windows) or
+ <code>LD_LIBRARY_PATH</code> (on most unix systems) environment variables
contain the Tomcat native library, the native/APR connector will be used.
If the native library cannot be found, the blocking Java based connector
will be used. Please be advised that the native/APR connector has
<p>This specifies if the encoding specified in contentType should be used
for URI query parameters, instead of using the URIEncoding. This
setting is present for compatibility with Tomcat 4.1.x, where the
- encoding specified in the contentType, or explicitely set using
+ encoding specified in the contentType, or explicitly set using
Request.setCharacterEncoding method was also used for the parameters from
the URL. The default value is <code>false</code>.
</p>
<attribute name="useIPVHosts" required="false">
<p>Set this attribute to <code>true</code> to cause Tomcat to use
- the IP address that the request was recieved on to determine the Host
+ the IP address that the request was received on to determine the Host
to send the request to. The default value is <code>false</code>.</p>
</attribute>
<attribute name="selectorTimeout" required="false">
<p>(int)The time in milliseconds to timeout on a select() for the poller.
- This value is important, since connection clean up is done on the same thread, so dont set this
+ This value is important, since connection clean up is done on the same thread, so do not set this
value to an extremely high one. The default value is <code>1000</code> milliseconds.</p>
</attribute>
<attribute name="useComet" required="false">
<ul>
<li><strong>Introduction</strong> - Overall description of this particular
component. There will be a corresponding Java <em>interface</em> (in
- the <code>org.apache.catalina</code> pacakge) that is implemented by one
+ the <code>org.apache.catalina</code> package) that is implemented by one
or more standard implementations.</li>
<li><strong>Attributes</strong> - The set of attributes that are legal for
this element. Generally, this will be subdivided into <em>Common</em>
<h3>Jasper Listener (org.apache.catalina.core.JasperListener)</h3>
- <p>The <strong>Jasper Listener</strong> initialises the Jasper 2 JSP engine
+ <p>The <strong>Jasper Listener</strong> initializes the Jasper 2 JSP engine
before any web applications that may use it are loaded. For more
information on the Jasper 2 JSP engine see the
<a href="../jasper-howto.html">Jasper How To</a>.</p>
<h3>Server Lifecycle Listener
(org.apache.catalina.mbeans.ServerLifecycleListener)</h3>
- <p>The <strong>Server Lifecycle Listener</strong> initialises the
+ <p>The <strong>Server Lifecycle Listener</strong> initializes the
MBeanServer for the MBeans that may be used to manager Tomcat via JMX.
Without this listener, none of the Tomcat MBeans will be available.</p>
<h3>Global Resources Lifecycle Listener
(org.apache.catalina.mbeans.GlobalResourcesLifecycleListener)</h3>
- <p>The <strong>Global Resources Lifecycle Listener</strong> initialises the
+ <p>The <strong>Global Resources Lifecycle Listener</strong> initializes the
Global JNDI resources defined in server.xml as part of the <a
href="globalresources.html">Global Resources</a> element. Without this
listener, none of the Global Resources will be available.</p>
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
</source>
- with the following system properties set (eg in setenv.sh):
+ with the following system properties set (e.g. in setenv.sh):
<source>
-Dcom.sun.management.jmxremote.password.file=${catalina.base}/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=${catalina.base}/conf/jmxremote.access
<attribute name="processExpiresFrequency" required="false">
<p>Frequency of the session expiration, and related manager operations.
Manager operations will be done once for the specified amount of
- backgrondProcess calls (ie, the lower the amount, the more often the
+ backgrondProcess calls (i.e., the lower the amount, the more often the
checks will occur). The minimum value is 1, and the default value is 6.
</p>
</attribute>
<strong><Store></strong> element inside, which defines the
characteristics of the persistent data storage. Two implementations
of the <code><Store></code> element are currently available,
- with different characteristics, as described belowl</p>
+ with different characteristics, as described below.</p>
<h5>File Based Store</h5>
<subsection name="Restart Persistence">
- <p>Whenver Catalina is shut down normally and restarted, or when an
+ <p>Whenever Catalina is shut down normally and restarted, or when an
application reload is triggered, the standard Manager implementation
will attempt to serialize all currently active sessions to a disk
file located via the <code>pathname</code> attribute. All such saved
</attribute>
<attribute name="userClassNames" required="true">
- <p>A comma-seperated list of the names of the classes that you have made
+ <p>A comma-separated list of the names of the classes that you have made
for your user <code>Principals</code>.</p>
</attribute>
<attribute name="roleClassNames" required="false">
- <p>A comma-seperated list of the names of the classes that you have made
+ <p>A comma-separated list of the names of the classes that you have made
for your role <code>Principals</code>.</p>
</attribute>
failed authentication attempts in a given period of time.</p>
<p>To ensure correct operation, there is a reasonable degree of
- synchronisation in this Realm.</p>
+ synchronization in this Realm.</p>
<p>This Realm does not require modification to the underlying Realms or the
- associated user storage mecahisms. It achieves this by recording all failed
+ associated user storage mechanisms. It achieves this by recording all failed
logins, including those for users that do not exist. To prevent a DOS by
deliberating making requests with invalid users (and hence causing this
cache to grow) the size of the list of users that have failed authentication
<p>A unified caching engine is provided for all accesses to the webapp
resources made by the servlet container and web applications which use the
- container provided mechanisms to access such resources, such as class laoder
+ container provided mechanisms to access such resources, such as classloader
access, access through the <code>ServletContext</code> interface, or native
access through the <code>DirectoryContext</code> interface.</p>
</property>
<property name="org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING">
- <p>If <code>false</code> the requirements for escpaing quotes in JSP
+ <p>If <code>false</code> the requirements for escaping quotes in JSP
attributes will be relaxed so that a missing required quote will not
cause an error. If not specified, the specification compliant default of
<code>true</code> will be used.</p>
</li>
<li>every request that is associated with a session will cause the
session's last accessed time to be updated regardless of whether or not
- the request explicity accesses the session. (SRV.7.6)
+ the request explicitly accesses the session. (SRV.7.6)
</li>
<li>
cookies will be parsed strictly, by default v0 cookies will not work with any invalid characters.
</attribute>
<attribute name="rotatable" required="false">
- <p>Deafult true. Flag to determine if log rotation should occur.
- If set to false, then this file is never rotated and
+ <p>Flag to determine if log rotation should occur.
+ If set to <tt>false</tt>, then this file is never rotated and
<tt>fileDateFormat</tt> is ignored. Use with caution!
+ Default value: <tt>true</tt>
</p>
</attribute>
</attribute>
<attribute name="buffered" required="false">
- <p>Deafult true. Flag to determine if logging will be buffered.
- If set to false, then access logging will be written after each
- request.
+ <p>Flag to determine if logging will be buffered.
+ If set to <tt>false</tt>, then access logging will be written after each
+ request. Default value: <tt>true</tt>
</p>
</attribute>
<td valign='top'>
If you wish to customize your directory listing, you
can use an XSL transformation. This value is an absolute
- file name which be used for all direcotory listings.
+ file name which be used for all directory listings.
This can be disabled by per webapp by also declaring the
default servlet in your local webapp's web.xml. The format
of the xml is shown below.
<a name="dir"></a>
<p>You can override DefaultServlet with you own implementation and use that
in your web.xml declaration. If you
-can undertand what was just said, we will assume yo can read the code
+can understand what was just said, we will assume you can read the code
to DefaultServlet servlet and make the appropriate adjustments. (If not,
then that method isn't for you)
</p>
</p>
<p>
- It is assumed the user will be familar with Apache Ant for using the TCD.
+ It is assumed the user will be familiar 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
<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
+ properties used below). A web application that is programmatically
+ deployed with the deployer may include a Context Descriptor in
<code>/META-INF/context.xml</code>.
</p>
</p>
<p>
- Users should be aware that wsdl4j.jar is licenced under CPL 1.0 and not the
+ Users should be aware that wsdl4j.jar is licensed under CPL 1.0 and not the
Apache License version 2.0.
</p>
<li>It shall be possible to save the configured state of the running
Tomcat container such that this state can be reproduced when the
container is shut down and restarted.</li>
- <li>Adminstrative commands to start up and shut down the overall
+ <li>Administrative commands to start up and shut down the overall
Tomcat container are <strong>out of scope</strong> for the
purposes of these applications. It is assumed that other
(usually platform-specific) mechanisms will be used for container
described under "External Technologies", above.</li>
<li>Prompts and error messages must be internationalizable to multiple
languages.</li>
- <li>Rendered HTML must be compatible with Netscape Navigator (verson 4.7
+ <li>Rendered HTML must be compatible with Netscape Navigator (version 4.7
or later) and Internet Explorer (version 5.0 or later).</li>
</ul>
<li>An optional <em>Loader</em> representing default configuration
properties for the Loader component of deployed web applications.</li>
<li>An optional <em>Manager</em> representing default configuration
- properties for the Manager component fo deployed web applications.</li>
+ properties for the Manager component of deployed web applications.</li>
</ul>
</section>
<p>On each HTTP PUT request processed by this servlet, the following
- processing shall be perfomred:</p>
+ processing shall be performed:</p>
<ul>
<li>If modifications to the static resources are not allowed (set by a
configuration parameter), return HTTP status 403 (forbidden).</li>
<p><em>NOTE</em> - In some cases, the contents of these functional specs has
been "reverse engineered" from existing implementations. This exercise is
-stil useful, because it provides an introduction to <strong>what</strong>
+still useful, because it provides an introduction to <strong>what</strong>
Catalina does, without being as concerned with <strong>how</strong> this is
accomplished.</p>
applications and provides links for managing them. For each web application
the following is displayed:
<ul>
- <li><strong>Path</strong> - The web applicaton context path.</li>
+ <li><strong>Path</strong> - The web application context path.</li>
<li><strong>Display Name</strong> - The display name for the web application
if it has one configured in its "web.xml" file.</li>
<li><strong>Running</strong> - Whether the web application is running and
Using APR to provide superior performance, scalability and better
integration with native server technologies.</li>
<li><a href="virtual-hosting-howto.html"><strong>Virtual Hosting</strong></a> -
- Configuring vitual hosting in Apache Tomcat.</li>
+ Configuring virtual hosting in Apache Tomcat.</li>
<li><a href="aio.html"><strong>Advanced IO</strong></a> -
Extensions available over regular, blocking IO.</li>
<li><a href="extras.html"><strong>Additional Components</strong></a> -
specification.</p>
<p>Jasper 2 has been redesigned to significantly improve performance over
-the orignal Jasper. In addition to general code improvements the following
+the original Jasper. In addition to general code improvements the following
changes were made:
<ul>
<li><strong>JSP Custom Tag Pooling</strong> - The java objects instantiated
a JSP page which had already been compiled Jasper 2 can recompile that
page in the background. The previously compiled JSP page will still be
available to serve requests. Once the new page has been compiled
-successfully it will replace the old page. This helps improve availablity
+successfully it will replace the old page. This helps improve availability
of your JSP pages on a production server.</li>
<li><strong>Recompile JSP when included page changes</strong> - Jasper 2
can now detect when a page included at compile time from a JSP has changed
<code>true</code>.</li>
<li><strong>fork</strong> - Have Ant fork JSP page compiles so they are
-performed in a seperate JVM from Tomcat? <code>true</code> or
+performed in a separate JVM from Tomcat? <code>true</code> or
<code>false</code>, default <code>true</code>.</li>
<li><strong>genStringAsCharArray</strong> - Should text strings be generated as char
shown that specifics for individual configurations can be rather tricky.</p>
<p>Here then are some example configurations that have been posted to
-tomcat-user for popular databases and some general tips for db useage.</p>
+tomcat-user for popular databases and some general tips for db usage.</p>
<p>You should be aware that since these notes are derived from configuration
and/or feedback posted to <code>tomcat-user</code> YMMV :-). Please let us
<p>
There is one problem with connection pooling. A web application has
-to explicetely close ResultSet's, Statement's, and Connection's.
+to explicitly close ResultSet's, Statement's, and Connection's.
Failure of a web application to close these resources can result in
them never being available again for reuse, a db connection pool "leak".
This can eventually result in your web application db connections failing
<source>
removeAbandoned="true"
</source>
-When available db connections run low DBCP will recover and recyle
+When available db connections run low DBCP will recover and recycle
any abandoned dB connections it finds. The default is <code>false</code>.
</p>
java.util.logging or
<a href="http://logging.apache.org/log4j">Log4J</a>.
Commons Logging provides Tomcat the ability to log
- hierarchially across various log levels without needing to rely on a particular
+ hierarchically across various log levels without needing to rely on a particular
logging implementation.
</p>
<p>
<section name="java.util.logging">
<p>
- The default implemenatation of java.util.logging provided in the JDK is too limited to be
+ The default implementation of java.util.logging provided in the JDK is too limited to be
useful. A limitation of JDK Logging appears to be the inability to have per-web application logging,
as the configuration is per-VM. As a result, Tomcat will, in the default configuration,
replace the default LogManager implementation with a container friendly implementation
absolute path of a web application Context configuration ".xml"
file which contains the Context configuration element.</li>
<li><strong>directory</strong> - The directory name for the web
- applciation context in the Host's application base directory.</li>
+ application context in the Host's application base directory.</li>
<li><strong>webapp.war</strong> - The name of a web application war file
located in the Host's application base directory.</li>
</ul></li>
<p>Each command will return a response in <code>text/plain</code> format
(i.e. plain ASCII with no HTML markup), making it easy for both humans and
-programs to read). The first line of the response wil begin with either
+programs to read). The first line of the response will begin with either
<code>OK</code> or <code>FAIL</code>, indicating whether the requested
command was successful or not. In the case of failure, the rest of the first
line will contain a description of the problem that was encountered. Some
JDBC data sources). If you do not specify the <code>type</code> request
parameter, resources of all types will be returned.</p>
-<p>Depending on whether the <code>type</code> request parameter is specfied
+<p>Depending on whether the <code>type</code> request parameter is specified
or not, the first line of a normal response will be:</p>
<pre>
OK - Listed global resources of all types
Tomcat snapshots are located in the
<a href="http://people.apache.org/repo/m2-snapshot-repository/org/apache/tomcat/">Apache Snapshot Repository</a>.
The official URL is <source>http://people.apache.org/repo/m2-snapshot-repository/org/apache/tomcat/</source><br/>
- Snapshots are done periodically, not on a regular basis, but when changes happen and the Tomcat team deams a new snapshot might
+ Snapshots are done periodically, not on a regular basis, but when changes happen and the Tomcat team deems a new snapshot might
useful.
</subsection>
<subsection name="Tomcat Releases">
</p>
<p>
<ol>
- <li>If you require authorisation, add and change this :
+ <li>If you require authorization, add and change this :
<source>
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access \
</source>
</li>
- <li>edit the access authorisation file <em>$CATALINA_BASE/conf/jmxremote.access</em> :
+ <li>edit the access authorization file <em>$CATALINA_BASE/conf/jmxremote.access</em> :
<source>
monitorRole readonly
controlRole readwrite
<tr>
<td>echo</td>
- <td>Echo the command usage (for analyse access or debugging)
+ <td>Echo the command usage (for access analysis or debugging)
</td>
<td><code>false</code></td>
</tr>
</source>
</p>
<p>
-Example to open a JMX connection from URL, with authorisation and
+Example to open a JMX connection from URL, with authorization and
store at other reference <br/>
<source>
<jmx:open
</p>
<p>
-Example to open a JMX connection from URL, with authorisation and
+Example to open a JMX connection from URL, with authorization and
store at other reference, but only when property <em>jmx.if</em> exists and
<em>jmx.unless</em> not exists<br/>
<source>
applications to <em>declare</em> their security requirements (in the
<code>web.xml</code> deployment descriptor), there is no portable API
defining the interface between a servlet container and the associated user
-and role information. In many cases, however, it is desireable to "connect"
+and role information. In many cases, however, it is desirable to "connect"
a servlet container to some existing authentication database or mechanism
that already exists in the production environment. Therefore, Tomcat 6
defines a Java interface (<code>org.apache.catalina.Realm</code>) that
<p>For each of the standard <code>Realm</code> implementations, the
user's password (by default) is stored in clear text. In many
-environments, this is undesireable because casual observers of the
+environments, this is undesirable because casual observers of the
authentication data can collect enough information to log on
successfully, and impersonate other users. To avoid this problem, the
standard implementations support the concept of <em>digesting</em>
within that application.</p>
<p>For security reasons, no username in the default Realm (i.e. using
-<code>conf/tomcat-users.xml</code> is assigned the "manager" role. Therfore,
+<code>conf/tomcat-users.xml</code> is assigned the "manager" role. Therefore,
no one will be able to utilize the features of this application until the
Tomcat administrator specifically assigns this role to one or more users.</p>
</li>
<li>
<strong>echo</strong> - <code><!--#echo var="VARIABLE_NAME" --></code>
-will be replaced bt the value of the variable.
+will be replaced by the value of the variable.
</li>
<li>
<strong>exec</strong> - Used to run commands on the host system.
<tr>
<td>HTTP_ACCEPT_LANGUAGE</td>
<td>
- A list of the laguages that the client can accept.</td>
+ A list of the languages that the client can accept.</td>
</tr>
<tr>
<td>HTTP_CONNECTION</td>
<section name="Quick Start">
- <p>Apache Tribes is a group or peer-to-peer communcation framework that enables you to easily connect
+ <p>Apache Tribes is a group or peer-to-peer communication framework that enables you to easily connect
your remote objects to communicate with each other.
</p>
<ul>
<p>
The Tribes module was started early 2006 and a small part of the code base comes from the clustering module
that has been existing since 2003 or 2004.
- The current cluster implementation has several short comings and many work arounds were created due
+ The current cluster implementation has several short comings and many workarounds were created due
to the complexity in group communication. Long story short, what should have been two modules a long time
ago, will be now. Tribes takes out the complexity of messaging from the replication module and becomes
a fully independent and highly flexible group communication module.<br/>
message basis. Meaning, that your messages are not delivered based on some static configuration
that remains fixed after the message framework has been started.<br/>
To give you an example of how powerful this feature is, I'll try to illustrate it with a simple example.
- Imagine you need to send 10 different messsages, you could send the the following way:
+ Imagine you need to send 10 different messages, you could send the the following way:
<source>
Message_1 - asynchronous and fast, no guarantee required, fire and forget
Message_2 - all-or-nothing, either all receivers get it, or none.
<td>Run the service as console application</td>
<td>This is the default operation. It is called if the no option is
provided. The ServiceName is the name of the executable without
- exe sufix, meaning Tomcat6</td>
+ exe suffix, meaning Tomcat6</td>
</tr>
<tr><th>//RS//</th>
<td>Run the service</td>