larryi 01/08/09 19:56:09
Modified: src/doc tomcat-ug.html style.css
Log:
Added some classloader information
Revision Changes Path
1.9 +99 -1 jakarta-tomcat/src/doc/tomcat-ug.html
Index: tomcat-ug.html
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/doc/tomcat-ug.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- tomcat-ug.html 2001/08/09 19:18:38 1.8
+++ tomcat-ug.html 2001/08/10 02:56:09 1.9
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
- <!-- $Id: tomcat-ug.html,v 1.8 2001/08/09 19:18:38 larryi Exp $ -->
+ <!-- $Id: tomcat-ug.html,v 1.9 2001/08/10 02:56:09 larryi Exp $ -->
<!-- Copyright 1999-2001 Apache Software Foundation -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css">
@@ -666,6 +666,104 @@
<h3><a name="configuring_tomcat">Configuring Tomcat</a></h3>
+
+<p>There are two parts to Tomcat configuration:</p>
+<ul>
+ <li>Configuring classes</li>
+ <li>Configuring the server</li>
+</ul>
+
+<h4>Configuring Classes</h4>
+
+<p>Configuring classes refers to configuring what classes are available and in
+what manner when Tomcat is running. You may wish to add additional classes and
+jars. Also, a web application may need some modification based on what Tomcat
+makes available by default.</p>
+
+<p>The available classes is determined by the classloader hierarchy that
+Tomcat creates when it starts up. The classloader hierarchy built by Tomcat 3.3
+looks like this:</p>
+
+<table class="cltable">
+ <tr class="clt_data"><td>
+ <table>
+ <tr class="clt_loader"><td>Server Classloader</td></tr>
+ <tr class="clt_label"><td>directory:</td></tr>
+ <tr class="clt_data"><td>lib/container</td></tr>
+ <tr class="clt_label"><td>default contents:</td></tr>
+ <tr class="clt_data">
+ <td>crimson.jar<br>facade22.jar<br>
+ jasper.jar<br>jaxp.jar<br>tomcat_modules.jar<br>tomcat_util.jar<br>
+ tomcat-startup.jar<br>xalan.jar</td></tr>
+ </table>
+ </td><td> </td><td> </td><td> </td><td>
+ <table>
+ <tr class="clt_loader"><td>Webapp Classloader(s)</td></tr>
+ <tr class="clt_label"><td>directory:</td></tr>
+ <tr class="clt_data"><td>WEB-INF/classes<br>WEB-INF/lib</td></tr>
+ <tr class="clt_data"><td>|</td></tr>
+ <tr class="clt_loader"><td>Apps Classloader</td></tr>
+ <tr class="clt_label"><td>directory:</td></tr>
+ <tr class="clt_data"><td>lib/apps</td></tr>
+ <tr class="clt_label"><td>default contents:</td></tr>
+ <tr class="clt_data"><td><i>empty</i></td></tr>
+ </table>
+ </td></tr>
+ <tr
class="clt_data"><td> </td><td>\</td><td> </td><td>/</td><td> </td></tr>
+ <tr><td> </td><td> </td><td>
+ <table>
+ <tr class="clt_loader"><td>Common Classloader</td></tr>
+ <tr class="clt_label"><td>directory:</td></tr>
+ <tr class="clt_data"><td>lib/common</td></tr>
+ <tr class="clt_label"><td>default contents:</td></tr>
+ <tr class="clt_data">
+ <td>connector_util.jar<br>core_util.jar<br>jasper-runtime.jar<br>
+ servlet.jar<br>tomcat_core.jar</td></tr>
+ </table>
+ </td>
+ <td> </td><td> </td></tr>
+ <tr
class="clt_data"><td> </td><td> </td><td>|</td><td> </td><td> </td></tr>
+ <tr><td> </td><td> </td><td>
+ <table>
+ <tr class="clt_loader"><td>Application Classloader</td></tr>
+ <tr class="clt_data"><td>the CLASSPATH classloader</td></tr>
+ <tr class="clt_label"><td>default contents:</td></tr>
+ <tr class="clt_data"><td>tomcat.jar</td></tr>
+ </table>
+ </td><td> </td><td> </td></tr>
+ <tr
class="clt_data"><td> </td><td> </td><td>|</td><td> </td><td> </td></tr>
+ <tr class="clt_loader"><td> </td><td> </td><td>
+ <table>
+ <tr class="clt_loader"><td>JDK Extensions Classloader</td></tr>
+ <tr class="clt_label"><td>directory:</td></tr>
+ <tr class="clt_data"><td><i>jdk</i>/jre/lib/ext</td></tr>
+ </table></td>
+ <td> </td><td> </td></tr>
+</table>
+
+<p>In this classloader hierarchy, classloaders can access classes in
+classloaders beneath them. They can not access classes in classloaders to the
+side or above. With this in mind, a brief inspection should reveal that in
+Tomcat 3.3, web applications do not have access to an XML parser by default.
+The <code>jaxp.jar</code> and <code>crimson.jar</code> are tucked away in the
+<b>Server Classloader</b> where they are accessible only within that
classloader.</p>
+
+<p>Also note that if you has a jar containing classes which depended on
+<code>servlet.jar</code>, putting in on the CLASSPATH wouldn't work.
+<code>servlet.jar</code> isn't accessible the <b>Application Classloader</b>.
+This is why in Tomcat 3.3, your CLASSPATH envronment variable is ignored.</p>
+
+<p>The standard way to add classes to Tomcat 3.3 is to place the classes in a
+jar if they aren't already. Then place the jar in the directory that
+corresponds to the appropriate classloader.</p>
+
+<p>A second method is available for adding classes to the <b>Common Classloader</b>
+and <b>Apps Classloader</b>. Entries found in an
<code>org.apache.tomcat.common.classpath</code>
+system property are added to the <b>Common Classloader</b> and entries found in
+an <code>org.apache.tomcat.apps.classpath</code> are added to the <b>Apps
CLassloader</b>.</p>
+
+<h4>Configuring the Server</h4>
+
<p> Tomcat's configuration is based on two files:</p>
<ol>
<li> <a href="#server_xml"> server.xml</a> - Tomcat's global configuration
file. </li>
1.3 +24 -0 jakarta-tomcat/src/doc/style.css
Index: style.css
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/doc/style.css,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- style.css 2000/09/01 22:44:46 1.2
+++ style.css 2001/08/10 02:56:09 1.3
@@ -55,3 +55,27 @@
font-size: smaller;
color: #000000
}
+
+/* Classloader table classes */
+
+.cltable {
+ background-color : #E0E0E0;
+ text-align : center;
+}
+
+.clt_loader {
+ text-align : center;
+ font-weight : bold;
+ color : #0033CC;
+}
+
+.clt_label {
+ text-align : left;
+ font-weight : bolder;
+}
+
+.clt_data {
+ text-align : center;
+ vertical-align : top;
+ font-size : smaller;
+}
\ No newline at end of file