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