You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2012/03/25 21:52:06 UTC

svn commit: r1305109 [3/6] - in /tomcat/site/trunk/docs/tomcat-3.2-doc: ./ appdev/ appdev/sample/ appdev/sample/etc/ appdev/sample/src/ appdev/sample/web/ appdev/sample/web/images/ uguide/ uguide/images/

Added: tomcat/site/trunk/docs/tomcat-3.2-doc/in-process-howto.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-3.2-doc/in-process-howto.html?rev=1305109&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-3.2-doc/in-process-howto.html (added)
+++ tomcat/site/trunk/docs/tomcat-3.2-doc/in-process-howto.html Sun Mar 25 19:52:05 2012
@@ -0,0 +1,267 @@
+<html>
+
+<head>
+<title>In-Process Howto</title>
+</head>
+
+<body>
+
+<h1>In-Process HowTo</h1>
+
+<p>By Gal Shachor &lt;shachor@il.ibm.com&gt;</p>
+
+<p>This document explains how to set up Netscape/IIS web servers so that
+Tomcat will run inside the web server process. <b>It assumes that you have
+already followed the instructions in the web server specific howto and
+configured it to use Tomcat as an out of process servlet container.</b>
+</p>
+
+<p>
+Normally Tomcat is running in one process and the web servers runs in another;
+this however requires the web server to communicate using some IPC mechanism
+such as TCP/IP. <br>
+
+When Tomcat is running inside the web server process, requests for servlet
+execution are passed using JNI (and performance improves).
+</p>
+
+<p>
+<b>Note:</b> Running the JVM inside the web server is not always a good
+idea. Sure it gives the best performance, but is lacks the stability
+associated with the out of process mode of operation. When deciding to run
+in-process make sure that top speed is what you need.
+</p>
+
+<h2>Document Conventions and Assumptions</h2>
+
+<p>&lt;tomcat_home&gt; is the root directory of tomcat. Your Tomcat
+installation should have the following subdirectories:
+
+<ol>
+  <li>&lt;tomcat_home&gt;\conf - Where you can place various configuration files</li>
+  <li>&lt;tomcat_home&gt;\webapps - Containing example applications </li>
+  <li>&lt;tomcat_home&gt;\bin - Where you place web server plugins </li>
+</ol>
+
+<p>In all the examples in this document &lt;tomcat_home&gt; will be c:\jakarta-tomcat.</p>
+
+<p>A <tt>worker</tt> is defined to be a Tomcat process that accepts work from
+the web server.</p>
+
+<h2>Supported Configuration</h2>
+
+<p>For in-process operation you will have to use the Netscape/IIS
+redirectors, look at their supported configuration sections.
+
+<p>The in-process adapter has been tested using JDK 1.1.7b, IBM's JDK 1.1.7, JDK 1.1.8,
+JDK 1.2.2., and JDK 1.3.</p>
+
+<h2>Installation</h2>
+
+<p>As of Tomcat 3.2, a pre-built version of the in-process adapter,
+<tt>jni_connect.dll</tt>, is available under the win32/i386 directory where you
+downloaded the <a href="http://jakarta.apache.org/downloads/binindex.html">
+Tomcat binary distribution.</a> For those using Netscape as your browser, try
+downloading a zip version of the file, if available. There can be problems using
+Netscape to download DLL files.</p>
+
+<p>The Tomcat JNI adapter requires the following actions:
+
+<ol>
+  <li>Putting jni_connect.dll under the bin directory - jni_connect.dll is used
+  to issue callbacks from Tomcat back to the web server, either obtain a
+  pre-built DLL or build it yourself (see the build section).</li>
+  <li>Update <tt>workers.properties</tt> and add the JNI worker - The JNI worker
+  needs several configuration items, you will need to add those to the worker
+  properties file.</li>
+  <li>Updating server.xml - You need to instruct Tomcat to use the JNI
+  connection handlers. You will also need to provide the home property for
+  your ContextManager (later on the log files and work directories will
+  be created under this home). </li>
+  <li>Directing context(s) to the in-process Tomcat - You need to instruct
+  the redirector to send work to the in-process Tomcat</li>
+  <li>Restart your server (so changes will take effect)</li>
+</ol>
+
+
+<h3>Putting jni_connect.dll under the bin directory</h3>
+
+<p> Put jni_connect.dll inside 
+    <tt>&lt;tomcat_home&gt;\bin\win32\i386\</tt>.
+</p>
+
+<h3>Update workers.properties and add the JNI worker</h3>
+<p> You should provide the JNI worker with several settings, some are
+mandatory and some are an option...
+</p>
+<p><b>Note:</b> The following instructions assume Tomcat is installed at c:\jakarta-tomcat.
+Adjust them appropriately to your Tomcat installation directory.</p>
+<ol>
+  <li>You <b>should</b> define a JNI worker.<br>
+  Set the <tt>worker.list</tt> property to point on a worker named <tt>jni</tt>:
+  <tt>worker.list=jni</tt><br>
+  Announce that the worker named <tt>jni</tt> is of type <tt>jni</tt>:
+  <tt>worker.jni.type=jni</tt>
+  <li>You <b>should</b> set a classpath to be use by the in-process Tomcat.<br>
+  To set the classpath use the <tt>worker.name.class_path</tt> property,
+  for example:<br>
+  <tt>worker.jni.class_path=c:\jakarta-tomcat\classes</tt><br>
+  <tt>worker.jni.class_path=c:\jakarta-tomcat\lib\jaxp.jar</tt><br>
+  <tt>worker.jni.class_path=c:\jakarta-tomcat\lib\parser.jar</tt><br>
+  <tt>worker.jni.class_path=c:\jakarta-tomcat\lib\jasper.jar</tt><br>
+  <tt>worker.jni.class_path=c:\jakarta-tomcat\lib\servlet.jar</tt><br>
+  <tt>worker.jni.class_path=c:\jakarta-tomcat\lib\webserver.jar</tt><br>
+  <tt>worker.jni.class_path=c:\jdk1.2.2\lib\tools.jar</tt><br>
+  <b>Note</b>: Do not forget to include the JDK's tools.jar in your classpath.
+  </li>
+  <li>You <b>should</b> provide a full path to the dll implementing the JVM.
+  For JDK1.1.x it is javai.dll, for JDK1.2.x it is jvm.dll. For example:<br>
+  <tt>worker.jni.jvm_lib=c:\jdk1.2.2\jre\bin\classic\jvm.dll</tt>
+  </li>
+  <li>You <b>should</b> provide command line options for Tomcat; you must provide
+  a -config option to specify your JNI configured server.xml. For example:<br>
+  <tt>worker.jni.cmd_line=-config</tt><br>
+  <tt>worker.jni.cmd_line=c:\jakarta-tomcat\conf\jni_server.xml</tt><br>
+  <b>Note:</b> The cmd_line string doesn't support embedded spaces. If the
+  path to the jni_server.xml file includes spaces, use the DOS 8.3 name for
+  directories that would otherwise contain a space.</li>
+  <li>You <b>should</b> specify the tomcat home location as a Java system
+  properties. For example:<br>
+  <tt>worker.jni.sysprops=tomcat.home=c:\jakarta-tomcat</tt>
+  </li>
+  <li>You can specify additional Java system properties. For example:<br>
+  <tt>worker.jni.sysprops=java.compiler=NONE</tt>
+  </li>
+  <li>You can specify files to by used by the JVM for stdout and stderr.
+  For example:<br>
+  <tt>worker.jni.stdout=c:\jakarta-tomcat\logs\jvm.stdout</tt><br>
+  <tt>worker.jni.stderr=c:\jakarta-tomcat\logs\jvm.stderr</tt>
+  </li>
+  <li>You can specify additional PATH, to be use when loading dlls (useful
+  when you are using native code). For example:<br>
+  <tt>worker.jni.ld_path=c:\SQLLIB\bin</tt><br>
+  <tt>worker.jni.ld_path=c:\my\native\code</tt>
+  </li>
+</ol>
+<p>You can find a sample worker file (<tt>jni_workers.properties</tt>) under
+<tt>jakarta-tomcat/conf</tt>. The contents of this file assume that Tomcat is
+installed at c:\jakarta-tomcat.  Modify as needed if Tomcat is installed at a
+different location.</p>
+
+<h3>Update server.xml</h3>
+<p>
+By default Tomcat reads the file &lt;tomcat_home&gt;\conf\server.xml. This
+file defines among other things the contexts and connectors used by Tomcat.
+In order to work in-process you will have to perform the following actions:
+</p>
+<ol>
+  <li>You should update the connectors list.<br>
+  Remove all the connectors from your server.xml and add the following
+  lines (note that you will need to update the area marked
+  with &lt;tomcat_home&gt;)
+  <pre>
+    &lt;!-- JNI connector, make sure that you update the native_lib
+             Parameter to point to your jni_connect.dll
+     --&gt;
+    &lt;Connector className=&quot;org.apache.tomcat.service.JNIEndpointConnector&quot;&gt;
+        &lt;Parameter name=&quot;native_lib&quot;
+            value=&quot;&lt;tomcat_home&gt;/bin/win32/i386/jni_connect.dll&quot;/&gt;
+    &lt;/Connector&gt;
+  </pre>
+  These lines add a JNI connector to Tomcat.
+  <li>You should update the <tt>home</tt> attribute used by the
+  ContextManager so that the ContextManager will know where to place the
+  log, work and webapps directories. For example:
+  <pre>
+    &lt;ContextManager debug="0" workDir="work" home="&lt;tomcat_home&gt;" /&gt;
+    .
+    .
+    .
+    &lt;/ContextManager /&gt;
+  </pre>
+  Again, make sure that you update &lt;tomcat_home&gt; to your real Tomcat
+  root.
+  </li>
+</ol>
+You can find a sample server file (<tt>jni_server.xml</tt>) under <tt>jakarta-tomcat/conf</tt>.
+
+<h3>Redirect contexts to the JNI workers</h3>
+<p>You will need to select the contexts that you wish to serve using your
+jni worker.</p>
+
+<p>On Netscape you can do that by modifying the lines in the servlet
+configuration object to reflect redirect work to the new JNI worker.
+For example:
+<pre>
+    &lt;Object name=servlet&gt;
+    ObjectType fn=force-type type=text/plain
+    Service fn="jk_service" worker="jni"
+    &lt;/Object&gt;
+</pre>
+</p>
+
+<p>On IIS you will have to modify your worker mount file to mount contexts
+to the JNI worker. For example:</p>
+
+<tt>/examples/*=jni</tt>
+
+<p>When you are done restart your server. That's all, you should now be able
+to execute Tomcat in-process.</p>
+
+<h2>Building the JNI connector dll</h2>
+
+<p>The JNI connector was developed using Visual C++ Ver.6.0, so having this
+environment is a prereq if you want to perform a custom build. You will also
+need a JDK installation (the jre is not good enough) in order to use
+the JDK's include files.</p>
+
+<p>The steps that you need to take are:
+
+<ol>
+  <li>Change directory to the JNI connector source directory.</li>
+  <li>Make sure that the environment variable <tt>JAVA_HOME</tt> is set and
+  points to your JDK installation</li>
+  <li>Execute the following command:<br>
+    <tt>MSDEV jni_connect.dsp /MAKE ALL</tt><br>
+    If msdev is not in your path, enter the full path to msdev.exe</li>
+</ol>
+
+<p>This will build both release and debug versions of the JNI connector. </p>
+
+<p>An alternative will be to open the jni_connect workspace file
+(jni_connect.dsw) in msdev and build it using the build menu.</p>
+
+<h2>How does it work? </h2>
+Working in-process requires both the server redirector
+(IIS-Tomcat/Netscape-Tomcat) and the in-process connector. The server
+redirector can direct work to different workers based on their name; now
+that we added the JNI worker the server redirector can forward it work...
+
+The basic operation is this:
+<ol>
+  <li>During the initialization the server redirector starts the JNI worker.</li>
+  <li>Upon startup the JNI worker creates a JVM inside the web server and
+  starts Tomcat in it.</li>
+  <li>For each in-coming request for a servlet, the server redirector will
+  check which worker is responsible for the specific context. If this worker 
+  is the JNI worker then the request is assigned to it.</li>
+  <li>The JNI worker attaches to the JVM and submits the request into the
+  Tomcat engine (using the JNIEndpointConnector). Tomcat will then execute
+  the request.</li>
+  <li>The server redirector collects the response from the JNI worker and
+  returns it to the browser.</li>
+</ol>
+
+
+<h2>Feedback</h2>
+
+<p>Please send feedback, bug report or any additional information to
+<tt>tomcat-dev@jakarta.apache.org</tt>.
+</p>
+
+<div align="center"><font size="-1"><pre>
+$Id: in-process-howto.html,v 1.1.2.2 2000/11/04 20:37:46 craigmcc Exp $
+</pre></font></div>
+
+</body>
+</html>

Propchange: tomcat/site/trunk/docs/tomcat-3.2-doc/in-process-howto.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tomcat/site/trunk/docs/tomcat-3.2-doc/index.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-3.2-doc/index.html?rev=1305109&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-3.2-doc/index.html (added)
+++ tomcat/site/trunk/docs/tomcat-3.2-doc/index.html Sun Mar 25 19:52:05 2012
@@ -0,0 +1,105 @@
+
+<html>
+  <head>
+    <!-- $Id: index.html,v 1.5.2.6 2001/05/26 16:04:14 marcsaeg Exp $ -->
+    <!-- Copyright 1999, Apache Software Foundation -->
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+    <link rel="stylesheet" href="uguide/style.css">
+    <title>Tomcat Documentation</title>
+  </head>
+  <body link="#0000ff" vlink="#800080">
+    <!-- Banner element, all hail the Project! -->
+    <table border="0" width="100%" cellspacing="0" cellpadding="0">
+      <tr>
+        <td width="50%">
+          <p align="left">
+            <a href="http://jakarta.apache.org/index.html">
+              <img src="uguide/images/banner.gif"
+                   width="350" 
+                   height="100" 
+                   alt="The Jakarta Project" 
+                   border="0"></a>
+        </td>
+        <td width="50%">
+          <p align="right"><img border="0" src="uguide/images/tomcat.gif" width="100" height="71" alt="The mighty Tomcat - Meow!"></p>
+        </td>
+      </tr>
+    </table>
+
+<h1>Tomcat Documentation*</h1>
+<ul>
+
+<li> <a href="readme">Tomcat 3.2 Release Notes</a><br>
+  &nbsp;
+</li>
+
+<li> Using Tomcat
+  <ul>
+    <li> <A HREF="uguide/tomcat_ug.html">Tomcat User's Guide</A> - How to install,
+      configure, and deploy Tomcat.</li>
+    <li><a href="JDBCRealm.howto">JDBC Realms</a> - Use a set of
+      configurable tables inside an RDBMS to store validation data.</li>
+    <li><a href="uguide/tomcat-security.html">Using the Java SecurityManager with Tomcat</a>
+      - Use of a SecurityManager while running Tomcat can protect your server
+      from Trojan servlets, JSPs, JSP beans, and tag libraries.</li>
+    <li><a href="Tomcat-Workers-HowTo.html">Tomcat Workers</a> - How to work
+      with &quot;Tomcat workers,&quot; and the worker.properties file.</li>
+    <li><a href="tomcat-ssl-howto.html">Tomcat and SSL</a> - Using SSL with
+      Tomcat 3.2, including configuring web connectors.<br>
+      &nbsp;&nbsp;</li>
+  </ul>
+</li>
+<li>Using Tomcat in Windows - documentation specific to running Tomcat in a
+  Win32 environment
+  <ul>
+    <li><a href="NT-Service-howto.html">The Jakarta NT Service</a> - Wrapping an
+      NT Service around Tomcat.</li>
+    <li><a href="in-process-howto.html">In-process</a> - How to set up
+      Netscape/IIS web servers so that Tomcat will run inside the web server
+      process.<br>
+      &nbsp;</li>
+  </ul>
+</li>
+<li>Integrating Tomcat with a Web Server
+  <ul>
+    <li><a href="tomcat-apache-howto.html">Apache</a>
+      <ul>
+        <li><a href="mod_jk-howto.html">mod_jk</a>  - Installation and
+          configuration</li>
+      </ul>
+    </li>
+    <li><a href="tomcat-iis-howto.html">Internet Information Server</a></li>
+    <li><a href="tomcat-netscape-howto.html">Netscape<br>
+      </a>&nbsp;</li>
+  </ul>
+</li>
+<li> <A HREF="appdev/index.html">Developing Applications With Tomcat</A> -
+  The steps required to build and deploy web applications within Tomcat<br>
+  &nbsp;
+</li>
+<li>Other Resources
+  <ul>
+    <li><a href="faq">Frequently Asked Questions</a></li>
+    <li><a href="http://jakarta.apache.org/getinvolved/mail.html">Mailing lists
+      </a></li>
+  </ul>
+</li>
+
+</ul>
+
+    <p><b>* The absolute latest Tomcat documentation can be found online at the <a href="http://jakarta.apache.org/tomcat/tomcat-3.2-doc/index.html">Tomcat
+    Documentation homepage</a>.</b></p>
+
+    <table width="100%" border="0" cellpadding="10" cellspacing="0">
+      <tr>
+        <td>
+          <p class="fineprint">
+            Copyright &copy;1999-2000 The Apache Software Foundation<br>
+            <a href="http://jakarta.apache.org/legal.html">Legal Stuff They Make Us Say</a><br>
+            <a href="http://jakarta.apache.org/contact.html">Contact Information</a> </p>
+        </td>
+      </tr>
+    </table>
+
+  </body>
+</html>

Propchange: tomcat/site/trunk/docs/tomcat-3.2-doc/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tomcat/site/trunk/docs/tomcat-3.2-doc/mod_jk-howto.html
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-3.2-doc/mod_jk-howto.html?rev=1305109&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-3.2-doc/mod_jk-howto.html (added)
+++ tomcat/site/trunk/docs/tomcat-3.2-doc/mod_jk-howto.html Sun Mar 25 19:52:05 2012
@@ -0,0 +1,879 @@
+<html>
+<head>
+    <!-- $Id  $ -->
+    <!-- Copyright 2001, Apache Software Foundation -->
+
+    <meta http-equiv=Content-Type content="text/html">
+    <link rel="stylesheet" href="uguide/style.css">
+    <style type="text/css">
+    .inlinetd {
+        background-color: #E0E0E0;
+        vertical-align: text-top;
+        border-top: thick black;
+        border-right: thick black;
+        border-bottom: thick black;
+        border-left: thick black;
+    }
+    .inlineth {
+        background-color: #d0d0d0;
+        border-top: thick black;
+        border-right: thick black;
+        border-bottom: thick black;
+        border-left: thick black;
+    }
+    .inlinetable {
+        width: 75%;
+        border: thick;
+        background-color: #000000;
+    }
+    .subsection { margin:20pt; }
+    .note { margin:20pt; padding:5pt; background-color:#e0e0ff; }
+
+    </style>
+
+<title>Working with mod_jk</title>
+</head>
+
+<body>
+<!-- Banner element, all hail the Project! -->
+<table border="0" width="100%" cellspacing="0" cellpadding="0">
+  <tr>
+    <td width="50%" align="left">
+        <a href="http://jakarta.apache.org/index.html">
+          <img src="uguide/images/banner.gif" width="350" height="100" alt="The Jakarta Project" border="0">
+        </a>
+    </td>
+    <td width="50%" align="right">
+      <img border="0" src="uguide/images/tomcat.gif" width="100" height="71" alt="The mighty Tomcat - Meow!">
+    </td>
+  </tr>
+</table>
+
+<h1>Working with mod_jk</h1>
+<p>By Gal Shachor <tt>&lt;<a href="mailto:shachor@il.ibm.com">shachor@il.ibm.com</a>&gt;</tt></p>
+
+<h2>Table of Contents</h2>
+<ul>
+<li><a href="#s2">What is mod_jk?</a></li>
+<li><a href="#s3">Why mod_jk?</a></li>
+<li><a href="#s4">What does it mean to me?</a></li>
+<li><a href="#s5">Definitions and Terminology</a></li>
+<li><a href="#s6">Obtaining mod_jk</a>
+  <ul>
+    <li><a href="#s61">mod_jk Binaries</a></li>
+    <li><a href="#s62">Building mod_jk</a></li>
+    <li><a href="#s63">Building mod_jk for NT</a></li>
+    <li><a href="#s64">Building mod_jk for Unix</a></li>
+  </ul>
+</li>
+<li><a href="#s7">Configuring Apache</a>
+<ul>
+<li><a href="#s71">Removing mod_jserv directives</a></li>
+<li><a href="#s72">Configuring Apache to use mod_jk</a></li>
+<li><a href="#s73">Assigning URLs to be redirected to Tomcat</a></li>
+</ul></li>
+<li><a href="#s8">Configuring Tomcat</a>
+  <ul>
+    <li><a href="#s81">Enabling Tomcat's Apache Auto-Config</a></li>
+    <li><a href="#s82">Configuring Tomcat to use the AJPv13 Protocol</a></li>
+    <li><a href="#s83">Defining Workers</a></li>
+  </ul>
+</li>
+<li><a href="#s9">Example Configuration</a></li>
+<li><a href="#s10">Troubleshooting and F.A.Q's</a></li>
+<li><a href="#s11">Credits</a></li>
+</ul>
+<hr>
+<h2><a name=s2>What is mod_jk?</a></h2>
+
+<p>mod_jk is a replacement to the elderly mod_jserv. It is a completely new
+Tomcat-Apache plug-in that handles the communication between Tomcat and Apache.</p>
+<hr>
+<h2><a name=s3>Why mod_jk?</a></h2>
+
+<p>Several reasons: </p>
+
+<ul>
+ <li><b>mod_jserv was too complex</b>. Because it was ported from Apache/JServ, it
+ brought with it lots of JServ specific bits that aren't needed by Apache.
+ <li><b>mod_jserv supported only Apache</b>. Tomcat supports many web servers
+     through a compatibility layer named the jk library. Supporting two different
+     modes of work became problematic in terms of support, documentation and bug
+     fixes. mod_jk should fix that.</li>
+ <li>The layered approach provided
+     by the jk library makes it easier to support both <b>Apache1.3.x <i>and</i>
+     Apache2.xx.</b></li>
+ <li><b>Better support for SSL</b>. mod_jserv couldn't reliably identify whether a
+ request was made via HTTP or HTTPS. mod_jk can, using the newer Ajpv13 protocol.</li>
+</ul>
+<hr>
+<h2><a name=s4>What does it mean to me?</a></h2>
+
+<p>You will need to get to know a new simplified configuration mechanism. The
+advantage is that learning this mechanism will give you a head start if you
+want to deploy Tomcat on Apache and other web servers, such as Microsoft's
+Internet Information Server (IIS) and the iPlanet Enterprise Web Server.</p>
+
+<hr>
+<h2><a name=s5>Definitions and Terminology</a></h2>
+
+<p>In this document I am going to use a few terms, so let's define them:</p>
+
+<table class=inlinetable>
+ <tr>
+  <th class=inlineth>
+  <p>Term</p>
+  </th>
+  <th class=inlineth>
+  <p>Meaning</p>
+  </th>
+ </tr>
+ <tr>
+  <td class=inlinetd>
+  <p>Worker Process</p>
+  </td>
+  <td class=inlinetd>
+  <p>A worker is a tomcat instance that is running to serve
+  servlet requests coming from the web server. In most cases there is only a
+  single worker (the one and only tomcat process) but sometimes you will run
+  multiple workers to achieve load balancing or site partitioning. Each worker
+  is identified to the web server by the host were it is located, the port
+  where it listens and the communication protocol used to exchange messages.</p>
+  </td>
+ </tr>
+ <tr>
+  <td class=inlinetd>
+  <p>In-Process Worker</p>
+  </td>
+  <td class=inlinetd>
+  <p>This is a special worker. Instead of working with a Tomcat
+  process residing on another process, the web server opens a JVM and executes
+  Tomcat inside the web server process address space. Our discussion in this
+  document is not going to get into this special worker.</p>
+  </td>
+ </tr>
+ <tr>
+  <td class=inlinetd>
+  <p>Web Server Plug-in/Tomcat Redirector</p>
+  </td>
+  <td class=inlinetd>
+  <p>For Tomcat to cooperate with any web server it needs an
+  &quot;agent&quot; to reside in the web server and send him servlet requests.
+  This is the web server plug-in, and in our case the web server plug-in is
+  mod_jk. The redirector usually comes in the shape of a DLL or shared object
+  module that you plug into the web server.</p>
+  </td>
+ </tr>
+ <tr>
+  <td class=inlinetd>
+  <p>Plug-in Configuration</p>
+  </td>
+  <td class=inlinetd>
+  <p>We need to configure the web server plug-in so that it
+  knows where the different Tomcat workers are and to which of them it should
+  forward requests. This information, accompanied with some internal parameter,
+  such as the log level, comprises the plug-in configuration. </p>
+  </td>
+ </tr>
+ <tr>
+  <td class=inlinetd>
+  <p>Web Server Configuration</p>
+  </td>
+  <td class=inlinetd>
+  <p>Each web server has some configuration that defines its behavior, e.g. on which port to listen, what files to serve, what web server
+  plug-ins to load, etc. You will need to modify your web server configuration
+  to instruct it to load the Tomcat redirector mod_jk.</p>
+  </td>
+ </tr>
+</table>
+	
+<hr>
+<h2><a name="s6">Obtaining mod_jk</a></h2>
+
+<p>mod_jk can be obtained in two formats - binary and source.&nbsp; Depending on
+the platform you are running your web server on, a binary version of mod_jk may
+be available.&nbsp; It is recommended to use the binary version if one is
+available.&nbsp; If the binary is not available, follow the instructions for
+building mod_jk from source.&nbsp; Notes at the end of this section offer
+recommendations for specific platforms. </p>
+
+<h3><a name="s61">mod_jk Binaries</a></h3>
+
+<p>Binaries for mod_jk are available for several platforms in the same area as
+the Tomcat Binary Release.&nbsp; The binaries are located in subdirectories by platform.&nbsp; For some
+platforms, such as Windows, this is the typical way of obtaining mod_jk since
+most Windows systems do not have C compilers.&nbsp; For others, the binary
+distribution of mod_jk offers simpler installation. </p>
+
+<p>For example, the Tomcat 3.3 M1 Release at <a href="http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.3-m1/bin/">http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.3-m1/bin/</a>
+ contains the following: </p>
+
+<table border="1" cellspacing="0" bordercolor="#000000" cellpadding="2" width="600">
+  <tr>
+    <td width="15%">linux/i386/</td>
+    <td width="85%">Contains mod_jk.so for Apache 1.3 for the standard API as
+      well as EAPI and mod_jk.so for Apache 2.0</td>
+  </tr>
+  <tr>
+    <td width="15%">netware/</td>
+    <td width="85%">Contains the mod_jk.nlm and nsapi.nlm</td>
+  </tr>
+  <tr>
+    <td width="15%">win32/</td>
+    <td width="85%">Contains the mod_jk.dll for Windows as well as other useful
+      binaries.</td>
+  </tr>
+</table>
+<p>Check the site for the latest binaries.</p>
+<p>Note: The version of mod_jk is not dependent on the version of Tomcat.&nbsp;
+The Tomcat 3.3 distribution of mod_jk will function correctly with other 3.x
+versions of Tomcat, such as Tomcat 3.2.1.</p>
+<h3><a name="s62">Building mod_jk</a></h3>
+
+<p>mod_jk is available in source distribution for all Windows and most Unix
+platforms.&nbsp; The source for mod_jk is included in the Binary Distribution of
+Tomcat in the TOMCAT_HOME/native/mod_jk/ directory.&nbsp; This directory is
+organized by Web Server name and version.&nbsp; Each directory contains the
+source as well as the appropriate build scripts, make files, or project files. </p>
+
+<h3><a name="s63">Building mod_jk for NT</a></h3>
+
+<p>The redirector was developed using Visual C++ version 6.0, so having this
+environment is a prerequisite if you want to perform a custom build.</p>
+
+<p>The steps that you need to take are: </p>
+
+<ol>
+ <li>Change directory to the apache1.3 or apache2.0 source directory depending
+  on your version of Apache. </li>
+ <li>Set an APACHE1_HOME environment variable which points to where your Apache is
+   installed.</li>
+ <li>Execute the following
+     command:<br><br>
+     <tt><span>MSDEV mod_jk.dsp /MAKE ALL</span></tt><br><br>
+     If msdev is not in your path, enter the full path to msdev.exe. Also, ApacheCore.lib
+     is expected to exist in the APACHE1_HOME\src\CoreD and APACHE1_HOME\src\CoreR
+     directories before linking will succeed. You will need to build enough of the
+     Apache source to create these libraries.</li>
+ <li>Copy mod_jk.dll to Apache's modules directory.</li>
+</ol>
+
+<p>This will build both release and debug versions of the redirector plug-in (mod_jk). </p>
+
+<p>An alternative will be to open <tt>mod_jk.dsp</tt> in msdev and build it using the build
+menu.</p>
+
+<h3><a name="s64">Building mod_jk for Unix</a></h3>
+
+<h4> Apache</h4>
+
+<ol>
+	<li>Make sure your Apache has DSO support. You can check this
+	with <tt>$APACHE_HOME/bin/httpd -l</tt>. If you see
+	"mod_so.c" in the output, DSO support is available. If it's
+	missing, you may have to recompile or reinstall Apache.</li>
+
+	<li>Find out whether your Apache has EAPI support. If you
+	compiled it yourself from source, EAPI is probably not compiled
+	in, unless you added it yourself (perhaps with mod_ssl). You
+	need to build mod_jk.so with or without EAPI to match your
+	Apache configuration. If you install a mismatched mod_jk.so,
+	<tt>$APACHE_HOME/bin/apachectl configtest</tt> will warn
+	you.</li>
+
+	<li>Make sure you have Perl 5 installed. The <tt>apxs</tt>
+	script used to build the module is written in Perl.  
+
+ <li>Change directory to <tt>TOMCAT_HOME/native/mod_jk/apache1.3</tt> (or
+	<tt>apache2.0</tt>).
+
+	<li>
+	<p>Build mod_jk.so. Following are three techniques you can try,
+	in order of simplicity:</p>
+
+		<ol>
+		<li>Run the build script for your platform.&nbsp; If a build script is
+          not available for your platform, you may be able to build mod_jk using <tt>./build-unix.sh</tt>. This script will set some variables, call
+		<tt>apxs</tt> as below, and try to copy mod_jk.so to
+		$APACHE_HOME/libexec. If it fails, you need to do
+		the following manually:
+
+ <ul>
+			<li>set JAVA_HOME in your shell, e.g. "<tt>set
+			JAVA_HOME=/usr/local/jdk1.2.2; export
+			JAVA_HOME</tt>"</li>
+			<li>set APACHE_HOME in your shell, e.g.
+			"<tt>set APACHE_HOME=/usr/local/apache;
+			export APACHE_HOME</tt>"</li>
+			<li>uncomment the following line in the
+			<tt>build-unix.sh</tt> file,
+			replacing "linux" with the name of your
+			platform as specified in the
+ Java include directory for your installation 
+
+			<blockquote><tt># JAVA_INCLUDE="-I
+			${JAVA_HOME}/include -I
+			${JAVA_HOME}/include/linux"</tt></blockquote>
+ </li>
+
+			</ul>
+  </li>
+
+		<li>If build-unix.sh fails, you may have better luck
+		with the Makefiles in the same directory, e.g.
+		"<tt>make -f Makefile.linux mod_jk.so</tt>"
+		</li>
+
+		<li>
+		<p>Finally, you can try to build it manually. Run the
+		<tt>apxs</tt> command that came with your apache
+		distribution (hint: look in /usr/local/apache/bin,
+		/usr/sbin, or wherever you installed apache). Type the
+		command all on one line.</p>
+
+		<hr>
+
+		<p>For Linux:</p>
+
+		<blockquote><tt>apxs -o mod_jk.so -I../jk
+		-I/usr/local/jdk/include -I/usr/local/jdk/include/linux
+		-c *.c ../jk/*.c</tt></blockquote>
+
+		<p>Your build may fail because the object files from
+		the <tt>../jk</tt> directory have been compiled to the
+		current directory, rather than their source directory.
+		Running <tt>gcc -shared -o mod_jk.so *.o</tt>
+		should finish the build.</p>
+
+		<hr>
+
+		<p>For Solaris:</p>
+
+		<p>Use the <tt>build-solaris.sh</tt> script as follows:</p>
+
+		<blockquote><tt># sh build-solaris.sh</tt></blockquote>
+
+        <p>This will build and install mod_jk.so in your apache/libexec
+        directory.&nbsp; This script contains settings for your Java and Apache
+        home locations.&nbsp; Make sure that these are set according to your
+        installation.&nbsp; The default settings are <tt>JAVA_HOME=/usr/java</tt> and
+        <tt>APACHE_HOME=/usr/local/apache</tt>.&nbsp; If your installation is different,
+        you will need to edit the <tt>build-solaris.sh</tt> script and change these
+        values appropriately.</p>
+
+        <p>See <tt>README.solaris</tt> located in <tt>TOMCAT_HOME/native/mod_jk/apache1.3</tt>
+        for more information.</p>
+
+        <p>If the build script does not work, you can also build mod_jk as
+        follows:</p>
+
+		<blockquote><tt>$APACHE_HOME/bin/apxs -o mod_jk.so -DSOLARIS -I../jk -I/usr/java/include
+          -I/usr/java/include/solaris -c *.c ../jk/*.c</tt></blockquote>
+
+		<p>On some systems, this will build the module
+		correctly, but will fail at runtime with a
+		"<tt>symbol "fdatasync" not found</tt>". To
+		fix, add <tt>-lposix4</tt> just before the
+		<tt>-c</tt> in the above command.</p>
+
+		<hr>
+
+		<p>For HP-UX 11.00:</p>
+
+		<p>Use the <tt>build-hpux.sh</tt> script as follows:</p>
+
+		<blockquote><tt># sh build-hpux.sh</tt></blockquote>
+
+        <p>This will build and install mod_jk.so in your apache/libexec
+        directory.&nbsp; This script contains settings for your Java and Apache
+        home locations.&nbsp; Make sure that these are set according to your
+        installation.&nbsp; The default settings are <tt>JAVA_HOME=/opt/java1.3</tt> and
+        <tt>APACHE_HOME=/usr/local/apache</tt>.&nbsp; If your installation is different,
+        you will need to edit the <tt>build-hpux.sh</tt> script and change these
+        values appropriately.</p>
+
+        <p>Also note that there are two HP-UX build scripts.&nbsp; One script
+        was written to build mod_jk without JNI support using GNU GCC.&nbsp; The
+        other script builds mod_jk with JNI support, however, this script
+        requires the HP ANSI C Compiler (not the stripped down C compiler
+        included with HP-UX to rebuild the kernel).&nbsp; The HP Compiler is
+        required because the dlopen() and related shared libraries are only
+        available for 64-bit applications and reliable 64-bit compilation is not
+        available with the current version of GCC.</p>
+
+        <p>The <tt>build-hpux.sh</tt> script should also work for HP-UX 10.00.</p>
+
+        <p>See <tt>README.hpux</tt> located in <tt>TOMCAT_HOME/native/mod_jk/apache1.3</tt>
+        for more information.</p>
+
+		<hr>
+
+		<p>For other Unixes (including FreeBSD):</p>
+
+		<p>You may need to replace fdatasync() with fsync() in jk_util.c.</p>
+
+        <p>The <tt>build-hpux-cc.sh</tt> script should be modifiable for IRIX and AIX.&nbsp;
+        Edit the script and change the APACHE_HOME and JAVA_HOME locations as
+        required.</p>
+
+		<hr>
+
+		<p>If you are using EAPI, try adding
+		<tt>-DEAPI</tt> to the apxs command after
+		<tt>mod_jk.so</tt>.</p>
+
+		<p>If apxs fails with <code>apxs:Break: Command failed
+		with rc=255</code>, it may have been damaged by
+		mod_ssl. Search for:</p>
+
+<pre>my $CFG_LD_SHLIB      = q();          # substituted via Makefile.tmpl
+my $CFG_LDFLAGS_SHLIB = q(); # substituted via Makefile.tmpl
+</pre>
+
+		<p>and change to:</p>
+
+<pre>my $CFG_LD_SHLIB      = q(ld);          # substituted via Makefile.tmpl
+my $CFG_LDFLAGS_SHLIB = q(-G); # substituted via Makefile.tmpl
+</pre>
+
+		<p>If you've installed Java in another directory,
+		adjust accordingly.</p>
+
+		<p>For other Unixes you should be able to work it out,
+		but remember that <strong>the order of the arguments to
+		<tt>apxs</tt> is important!</strong>.</p>
+		</li>
+
+		</ol>
+	</li>
+
+	<li>Now, copy the mod_jk library.&nbsp; <tt># cp mod_jk.so $APACHE_HOME/libexec</tt>.  (Note that
+      the build scripts attempt to do this, but you may have to
+	<tt>su</tt> first.)</li>
+</ol>
+
+<h4>Other Webservers</h4>
+
+<p>There are several Makefiles in the other directories under the <tt>TOMCAT_HOME/native/mod_jk/</tt>
+directory.&nbsp; You should also check the Tomcat documentation for specific
+information related to other web servers.</p>
+
+<hr>
+<h2><a name="s7">Configuring Apache</a></h2>
+
+<p>This section details the configuration that is required for the Apache Web
+Server to support mod_jk.</p>
+
+<h3><a name="s71">Removing mod_jserv directives</a></h3>
+<p class=subsection>
+If you've previously configured Apache to use mod_jserv, remove any <tt>ApJServMount</tt> directives from your httpd.conf. If you're including <tt>tomcat-apache.conf</tt> or <tt>tomcat.conf</tt>, you'll want to remove them as well - they are specific to
+mod_jserv.&nbsp; The mod_jserv configuration directives are not compatible with
+mod_jk!
+</p>
+
+<h3><a name="s72">Configure Apache to use mod_jk</a></h3>
+<div class=subsection>
+<p>The simplest way to configure Apache to use mod_jk is to turn on the Apache
+auto-configure setting in Tomcat and put the following include directive at the
+end of your Apache httpd.conf file (make sure you replace TOMCAT_HOME with the
+correct path for your Tomcat installation:</p>
+
+<p><tt>Include TOMCAT_HOME/conf/jk/mod_jk.conf-auto</tt></p>
+
+<p>Example:</p>
+
+<p><tt>Include /usr/local/jakarta-tomcat/conf/jk/mod_jk.conf-auto</tt></p>
+
+<p>This will tell Apache to use directives in the mod_jk.conf-auto file
+in the Apache configuration.&nbsp; This file is created by enabling the Apache
+auto-configuration as described in the configuring Tomcat section below [<a href="#s8">Configuring
+Tomcat</a>].</p>
+
+<p><b>NOTE:&nbsp; If you plan to use the Tomcat-Apache auto-configuration, skip
+the rest of this section and continue with the <a href="#s8">Configuring Tomcat</a>
+section.</b></p>
+
+<p>Custom configurations can be created by enabling the auto-configuration and
+copying the <tt>TOMCAT_HOME/conf/jk/mod_jk.conf-auto</tt> file to your own
+configuration file, such as <tt>TOMCAT_HOME/conf/jk/mod_jk.conf-local</tt>.</p>
+
+<p>The basic configuration is as follows:</p>
+
+<ul>
+ <li>You will need to instruct Apache to load Tomcat. This can be done with
+ Apache's <tt>LoadModule</tt> and <tt>AddModule</tt> configuration directives.</li>
+ <li>You must inform mod_jk the location of your <tt>workers.properties</tt> file.
+     Use mod_jk's <tt>JkWorkersFile</tt> configuration directive.</li>
+ <li>You should specify a location where mod_jk is going to place its log file
+     and a log level to be used. Use the <tt>JkLogFile</tt> and <tt>JkLogLevel</tt>
+     configuration directives. Possible log levels are <i>debug</i>, <i>info</i>,
+     <i>error</i> and <i>emerg</i>, but <i>info</i> should be your default
+     selection.</li>
+ <li>The directive <tt>JkLogStampFormat</tt> will configure the date/time format
+     found on mod_jk logfile. Using <tt>strftime()</tt> format string it's set by
+     default to "[%a %b %d %H:%M:%S %Y] "</li> 
+</ul>
+A simple example would be to include the following lines in your <tt>httpd.conf</tt> file:
+<blockquote><pre>
+LoadModule    jk_module  libexec/mod_jk.so
+AddModule     mod_jk.c
+JkWorkersFile /usr/local/jakarta-tomcat/conf/workers.properties
+JkLogFile     /usr/local/apache/logs/mod_jk.log
+JkLogLevel    info
+JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+</pre></blockquote>
+</div>
+
+<h3><a name="s73">Assigning URLs to Tomcat</a></h3>
+<div class=subsection>
+<p>If you have created a custom or local version of <tt>mod_jk.conf-local</tt>
+ as noted above, you can change settings such as the workers or URL prefix.</p>
+
+<p>Use mod_jk's JkMount directive to assign specific URLs to Tomcat. In general
+the structure of a JkMount directive is:</p>
+
+<pre>
+JkMount <i>&lt;URL prefix&gt;</i> <i>&lt;Worker name&gt;</i>
+</pre>
+
+<p>For example the following directives will send all requests ending in
+<tt>.jsp</tt> or beginning with <tt>/servlet</tt> to the &quot;<tt>ajp13</tt>&quot; worker,
+but jsp requests to files located in /otherworker will go to &quot;<tt>remoteworker</tt>&quot;.
+
+<blockquote><pre>
+JkMount /*.jsp ajp13
+JkMount /servlet/* ajp13
+JkMount /otherworker/*.jsp remoteworker
+</pre></blockquote>
+You  can use the <tt>JkMount</tt> directive at the top level or inside <tt>&lt;VirtualHost&gt;</tt>
+sections of your httpd.conf file.
+</div>
+
+<hr>
+<h2><a name="s8">Configuring Tomcat</a></h2>
+
+<h3><a name="s81">Enabling Tomcat's Apache Auto-Config</a></h3>
+<div class=subsection>
+<p>
+In most simple cases Tomcat can generate the needed Apache configuration. You
+can configure Tomcat so that when it starts up it will automatically generate
+a configuration file for Apache to use mod_jk.
+Most of the time you don't need to do anything but
+include this file (appending <tt>&quot;Include TOMCAT_HOME/conf/jk/mod_jk.conf-auto&quot;</tt>)
+in your httpd.conf, as shown in the previous section (<a href="#s7">Configuring
+Apache</a>).
+</p>
+<p>To configure Tomcat to generate the Apache auto-configuration add the following block to your <tt>TOMCAT_HOME/conf/server.xml</tt>  file after <tt>&lt;AutoWebApp ... /></tt>.
+</p>
+<blockquote><pre>
+&lt;ApacheConfig /&gt;
+</pre></blockquote>
+<p>
+That's it, you can
+now start Tomcat and Apache and access Tomcat from the Apache server.
+</p>
+<p>Note: Settings for mod_jk auto-configuration is new in Tomcat 3.3.&nbsp;
+Older versions of Tomcat create the auto-config file without a directive in
+server.xml.&nbsp; The new directive in Tomcat 3.3 allows for additional
+configuration options as detailed later in this section.&nbsp; For older
+versions of Tomcat, refere to the documentation that came with that version.
+</p>
+<p>
+If you have special needs, for example mounting
+URL prefixes that are not the default, you can use this file as a base for your
+customized configuration and save the results in another file. If you manage
+the Apache configuration yourself you'll need to update it whenever you add a
+new context.
+</p>
+<p>Note that you must restart tomcat and apache after adding a new
+context; Apache doesn't support configuration changes without a restart. Also
+the file <tt>TOMCAT_HOME/conf/jk/mod_jk.conf-auto</tt> is generated when
+tomcat starts, so you'll need to start Tomcat before Apache. Tomcat will
+overwrite <tt>TOMCAT_HOME/conf/jk/mod_jk.conf-auto</tt> each startup so
+customized configuration should be kept elsewhere.&nbsp; For example, copy&nbsp;
+<tt>TOMCAT_HOME/conf/jk/mod_jk.conf-auto</tt> to <tt>TOMCAT_HOME/conf/jk/mod_jk.conf-local
+</tt>before making changes.&nbsp; You'll need to startup Tomcat once to generate
+this file with your configuration for the first time.
+</p>
+<p>It is also possible to specify the location of the auto generated files by
+setting options in the &lt;ApacheConfig /&gt; block.&nbsp; The following details
+the syntax:
+</p>
+<blockquote><pre>
+&lt; ContextManager ... &gt;
+  ...
+  &lt;ApacheConfig <i>options</i> /&gt;
+  ...
+&lt; /ContextManager &gt;
+</pre></blockquote>
+<p>
+&nbsp;where <i>options</i> can include any of the following attributes:
+</p>
+<ul>
+  <li><b>confighome</b> - default parent directory for the following paths. If
+    not set, this defaults to TOMCAT_HOME. Ignored whenever any of the following
+    paths is absolute.
+  <li><b>jservconfig</b> - path to write apache jserv conf file to. If not set,
+    defaults to &quot;conf/jserv/tomcat-apache.conf&quot;.
+  <li><b>jkconfig</b> - path to write apacke mod_jk conf file to. If not set,
+    defaults to &quot;conf/jk/mod_jk.conf&quot;.
+  <li><b>workersconfig</b> - path to workers.properties file used by mod_jk. If
+    not set, defaults to &quot;conf/jk/workers.properties&quot;.
+  <li><b>modjserv</b> - path to Apache JServ plugin module file. If not set,
+    defaults to &quot;modules/ApacheModuleJServ.dll&quot; on windows,
+    &quot;modules/Jserv.nlm&quot; on netware, and &quot;libexec/mod_jserv.so&quot;
+    everywhere else.
+  <li><b>modjk</b> - path to Apache mod_jk plugin file. If not set, defaults to
+    &quot;modules/mod_jk.dll&quot; on windows, &quot;modules/mod_jk.nlm&quot; on
+    netware, and &quot;libexec/mod_jk.so&quot; everywhere else.
+  <li><b>jklog</b> - path to log file to be used by mod_jk.</li>
+</ul>
+<p>
+&nbsp;Example:
+</p>
+<blockquote><pre>...
+
+&lt;AutoWebApp dir=&quot;webapps&quot; host=&quot;DEFAULT&quot; /&gt;
+
+&lt;ApacheConfig confighome=&quot;/home/mydir&quot; /&gt;
+
+...</pre></blockquote>
+</div>
+
+<h3><a name="s82">(Optional) Configuring Tomcat to use the Ajpv13 protocol</a></h3>
+<div class=subsection>
+mod_jk can use either the original Ajpv12 protocol or the newer Ajpv13 protocol.
+Both protocols are enabled by default. The &quot;Ajp13&quot; Connection Handler in Tomcat will
+give you the benefit of a faster protocol and the ability to identify requests made via HTTPS.<BR><BR>
+The following block enables Ajpv13 in your <tt>TOMCAT_HOME/conf/server.xml</tt> file.
+<blockquote><pre>
+&lt;RequestInterceptor
+  className=&quot;org.apache.tomcat.modules.server.Ajp13Interceptor&quot;
+  port=&quot;8009&quot;/&gt;
+</pre></blockquote>
+
+<p>The <tt>server.xml</tt> file already has a block similar to this for
+Ajp12 connections on port 8007 (as delivered by mod_jserv). Even if you
+think you're only using Ajp13, you probably don't want to delete this
+connector -- it's required to shut down Tomcat.</p>
+
+</div>
+<h3><a name="s83">(Optional) Defining &quot;workers&quot;</a></h3>
+
+<h4>Configuring workers manually.</h4>
+<div class=subsection>
+<p>
+Workers are configured using the file <tt>TOMCAT_HOME/conf/jk/workers.properties</tt>.
+There is a great deal of information in the
+<a href="Tomcat-Workers-HowTo.html">workers.properties howto</a> document, and you
+should really look at that first. If you're in a hurry however, you can probably get away
+with editing the file <tt>workers.properties</tt> and setting the <tt>workers.tomcat_home</tt>, <tt>workers.java_home</tt> and <tt>ps</tt> variables to the correct values for your system.
+</p>
+</div>
+
+<hr>
+<h2><a name="s9">Example Configuration</a></h2>
+Here's an example configuration which probably reflects many real-world setups. A site
+is using Tomcat and Apache with two virtual hosts (one of them using HTTPS as well, which
+we're assuming is being handled by mod_ssl).
+<BR><BR>
+URLs ending in .jsp and beginning with /servlet are handled by Tomcat, the rest are
+handled by Apache. The files for each Host are server out of /web/host1 and /web/host2
+respectively.<BR><BR>
+The example are over-simplified and incomplete but should get you started. Also note the
+virtual host setup is new in Tomcat 3.2 - <i>this example won't work with Tomcat 3.1</i>.<BR><BR>
+
+<table class=inlinetable><tr><td class=inlinetd>
+<blockquote><pre>
+.
+.
+&lt;Connector className=&quot;org.apache.tomcat.service.PoolTcpConnector&quot;&gt;
+  &lt;Parameter name=&quot;handler&quot; value=&quot;org.apache.tomcat.service.connector.Ajp12ConnectionHandler&quot;/&gt;
+  &lt;Parameter name=&quot;port&quot; value=&quot;8007&quot;/&gt;
+&lt;/Connector&gt;
+
+&lt;Connector className=&quot;org.apache.tomcat.service.PoolTcpConnector&quot;&gt;
+  &lt;Parameter name=&quot;handler&quot;  value=&quot;org.apache.tomcat.service.connector.Ajp13ConnectionHandler&quot;/&gt;
+  &lt;Parameter name=&quot;port&quot; value=&quot;8009&quot;/&gt;
+&lt;/Connector&gt;
+
+&lt;Host name=&quot;host1.apache.org&quot;&gt;
+  &lt;Context path=&quot;&quot; docBase=&quot;/web/host1&quot; debug=&quot;0&quot;/&gt;
+&lt;/Host&gt;
+&lt;Host name=&quot;host2.apache.org&quot;&gt;
+  &lt;Context path=&quot;&quot; docBase=&quot;/web/host2&quot; debug=&quot;0&quot;/&gt;
+&lt;/Host&gt;
+.
+.
+</pre></blockquote>
+</td></tr></table>
+<i>Table 1 - Excerpt from server.xml showing the Ajp13 Connector and two virtual
+hosts.</i>
+<BR><BR>
+<table class=inlinetable><tr><td class=inlinetd>
+<blockquote><pre>
+# Setup for Solaris system
+#
+workers.tomcat_home=/usr/local/jakarta-tomcat
+workers.java_home=/usr/java
+ps=/
+worker.list=ajp12, ajp13
+
+# Definition for Ajp13 worker (Ajp12 left to readers imagination)
+#
+worker.ajp13.port=8009
+worker.ajp13.host=localhost
+worker.ajp13.type=ajp13
+</pre></blockquote>
+</td></tr></table>
+<i>Table 2 - Excerpt from workers.properties showing the Ajp13 worker</i>
+<BR><BR>
+<table class=inlinetable><tr><td class=inlinetd>
+<blockquote><pre>
+# Load mod_jk
+#
+LoadModule    jk_module  libexec/mod_jk.so
+AddModule     mod_jk.c
+
+# Configure mod_jk
+#
+JkWorkersFile /usr/local/jakarta-tomcat/conf/jk/workers.properties
+JkLogFile     /usr/local/apache/logs/mod_jk.log
+JkLogLevel    info
+
+# First Virtual Host.
+#
+&lt;VirtualHost 10.0.0.1:80&gt;
+  DocumentRoot /web/host1
+  ServerName host1.apache.org
+  JkMount /*.jsp ajp13
+  JkMount /servlet/* ajp13
+&lt;/VirtualHost&gt;
+
+# Second Virtual Host. Also accessible via HTTPS
+#
+&lt;VirtualHost 10.0.0.2:80&gt;
+  DocumentRoot /web/host2
+  ServerName host2.apache.org
+  JkMount /*.jsp ajp13
+  JkMount /servlet/* ajp13
+&lt;/VirtualHost&gt;
+
+&lt;VirtualHost 10.0.0.2:443&gt;
+  DocumentRoot /web/host2
+  ServerName host2.apache.org
+  SSLEngine On
+  JkMount /*.jsp ajp13
+  JkMount /servlet/* ajp13
+&lt;/VirtualHost&gt;
+
+</pre></blockquote>
+</td></tr></table>
+<i>Table 3 - Excerpt from Apaches httpd.conf showing JK directives.</i>
+
+<HR>
+<h2><a name="s10">Troubleshooting and F.A.Q.s</a></h2>
+
+<h3>Q. Where can I get help/support for mod_jk?</h3>
+A. The primary mechanism for support is through the Tomcat Documentation
+included in the TOMCAT_HOME/doc directory.&nbsp; These documents are viewable
+via browser through Tomcat <a href="http://localhost:8080/doc/index.html">http://localhost:8080/doc/index.html</a>.&nbsp;
+Documentation is also available on the Apache Jakarta web site for Tomcat at <a href="http://jakarta.apache.org/tomcat/jakarta-tomcat/src/doc/index.html">http://jakarta.apache.org/tomcat/jakarta-tomcat/src/doc/index.html</a>.
+<p>For additional help, the best resource is the Tomcat Users Discussion
+list.&nbsp; You should start by searching the mail list archives located at <a href="http://">http://mikal.org/interests/java/tomcat/index.html</a>
+before you post questions to the list.&nbsp; If you are unable to locate the
+answer to your question in the archive, you can post questions about Tomcat or
+mod_jk to the user list for assistance.&nbsp; Make sure that you include the
+version of Apache and Tomcat that you are using as well as the platform you are
+running on. <a href="http://">http://jakarta.apache.org/site/mail.html</a></p>
+
+<h3>Q. I can't find mod_jk anywhere. Where is it?</h3>
+A. Starting with Tomcat 3.3, the source for mod_jk is included in the native/mod_jk
+directory.&nbsp; You can also download the Source Distribution of Tomcat to
+obtain the source for mod_jk, which is how it was obtained in versions prior to
+Tomcat 3.3. The Binary Distributions of mod_jk are available at the same
+location as the Binary Distribution of Tomcat.&nbsp; The mod_jk binaries are
+located in subdirectories by platform.
+But in May 2001, the jakarta-tomcat-connectors was started and you'll find here
+up to date featured mod_jk (ie: new protocols AJP14/WARP) 
+
+<h3>Q. Which protocol should I use? Ajp12 or Ajp13?</h3>
+A. Ajp13 is a newer protocol, it's faster, and it works better with SSL. You almost
+certainly want to use it. There is more information in the
+<a href="Tomcat-Workers-HowTo.html">workers.properties howto</a> document.
+
+<h3>Q. Whenever I restart Tomcat, Apache locks up!</h3>
+A. The Ajp13 protocol keeps an open socket between Tomcat and Apache. The latest
+release of mod_jk (the one found since Tomcat 3.3-m2 and J-T-C) handle the network failure.
+But with previous release of mod_jk, you may have to restart Apache as well.
+
+<h3>Q. Why did exist two files mod_jk.so (-eapi ad -noeapi) in download dir for Linux ?</h3>
+A. Many versions of Apache use of modified API, known at Extended API. For example,
+Apache using mod_ssl or Apache present in certains recent Linux distributions.
+So if you got such 'Extended Apache', you need to use mod_jk.so-eapi, or use
+mod_jk.so-noeapi for standard Apache. It's wise to avoid using EAPI modules on STD API Apache or to use standard
+API modules on EAPI Apache. Allways be sure to have the mod_jk.so for your version of Apache  
+
+
+<h3>Q. What's that message about 'garbled DSO ?'</h3>
+A. It's related to Apache EAPI, the message 'mod_jk.so is garbled - perhaps this is not an Apache module DSO ?'
+just told you are trying to install a mod_jk.so DSO module that was compiled on an Apache using EAPI, 
+like apache-mod_ssl or apache from Redhat distro 6.2/7.0 but your system use the standard apache 
+with normal API.
+
+<h3>Q. And the message about 'module might crash under EAPI! '</h3>
+A. Also related to EAPI, the message '[warn] Loaded DSO /usr/lib/apache/mod_jk.so uses plain Apache 1.3 API, 
+this module might crash under EAPI! (please recompile it with -DEAPI)', the mod_jk.so was compiled under normal 
+Apache with standard API and you try to install the module on an Apache using EAPI. 
+
+<h3>Q. Where can I get more information?</h3>
+A. The <a href="Tomcat-Workers-HowTo.html">workers.properties howto</a> document has
+considerably more in-depth information than this one, and is worth a look. You could
+also try searching the mailing list archives for &quot;mod_jk&quot; or look at the source.<h3>Q.
+APXS is getting an error during the build of mod_jk, like rc=0 or rc=255.&nbsp;
+I tried all of the steps in the build section, what do I do now?</h3>
+A. APXS is a Perl script that is created when you build the Apache web server
+from source.&nbsp; Chances are that if you are getting these errors and you
+obtained Apache as a binary distribution, that APXS is not configured correctly
+for your system.&nbsp; Your best bet is to get the Apache source from <a href="http://httpd.apache.org">http://httpd.apache.org</a>
+and build it yourself.&nbsp; Use the following for a basic build (read the
+Apache docs for other options):
+<blockquote><pre># cd /usr/local/src
+# gzip -dc apache_1.3.19.tar.gz|tar xvf -
+# cd apache_1.3.19
+# ./configure --prefix=/usr/local/apache \
+              --enable-module=most \
+              --enable-shared=max
+# make
+# make install</pre></blockquote>
+
+<p>Note: The above steps assume that you downloaded the Apache source and placed
+it in your /usr/local/src directory.</p>
+
+
+<hr>
+<h2><a name="s11">Credits</a></h2>
+<p>This document was originally created by
+<a href="mailto:shachor@il.ibm.com">Gal Shachor</a></p>
+
+<p>Revisions by (Alphabetical)</p>
+
+<p>Mike Braden <tt>&lt;<a href="mailto:mikeb@mwbinc.com">mikeb@mwbinc.com</a>&gt;</tt><br>
+Mike Bremford<br>
+Chris Pepper</p>
+
+<p>With help from countless others on the tomcat-dev and tomcat-user lists!</p>
+
+<table width="100%" border="0" cellpadding="10" cellspacing="0">
+  <tr>
+    <td>
+      <p class="fineprint">
+        Copyright &copy;1999-2001 The Apache Software Foundation<br>
+        <a href="http://jakarta.apache.org/legal.html">Legal Stuff They Make Us Say</a><br>
+        <a href="http://jakarta.apache.org/contact.html">Contact Information</a> </p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
+

Propchange: tomcat/site/trunk/docs/tomcat-3.2-doc/mod_jk-howto.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tomcat/site/trunk/docs/tomcat-3.2-doc/readme
URL: http://svn.apache.org/viewvc/tomcat/site/trunk/docs/tomcat-3.2-doc/readme?rev=1305109&view=auto
==============================================================================
--- tomcat/site/trunk/docs/tomcat-3.2-doc/readme (added)
+++ tomcat/site/trunk/docs/tomcat-3.2-doc/readme Sun Mar 25 19:52:05 2012
@@ -0,0 +1,411 @@
+$Id: readme,v 1.8.2.24 2001/11/13 14:29:34 marcsaeg Exp $
+
+                            Release Notes for:
+                           ====================
+                           TOMCAT Version 3.2.4
+                           ====================
+
+
+0.  TABLE OF CONTENTS:
+
+    1.  Introduction
+    2.  Installing and Running Tomcat
+    3.  Application Development Using Tomcat
+    4.  Tomcat: Past, Present, and Future
+    5.  New Features In This Release
+    6.  Known Bugs and Issues
+    7.  Fixes and Enhancements in Updates
+
+
+=============================================================================
+1.  INTRODUCTION
+
+Tomcat is a servlet container and JavaServer Pages(tm) implementation.  It may
+be used stand alone, or in conjunction with several popular web servers:
+- Apache, version 1.3 or later
+- Microsoft Internet Information Server, version 4.0 or later
+- Microsoft Personal Web Server, version 4.0 or later
+- Netscape Enterprise Server, version 3.0 or later
+
+You should read the License Agreement (in the LICENSE file of the top level
+directory), which applies to all software included in this release.
+
+Tomcat version 3.2.3 is a security update release.  This release closes a 
+hole that potentially allowed access to resource protected by a 
+<security-constraint> in web.xml.  This release also includes fixes for
+several other bugs discovered after the release of Tomcat version 3.2.2.  
+Section 7 lists the bugs fixed in this release.
+
+Users of previous version of Tomcat are strongly encouraged to upgrade to
+this release.  No changes to any configuration files are required.  Existing
+installations can be upgraded to version 3.2.3 by simply copying the JAR
+files in this release into an existing 3.2.x tomcat/lib directory.
+
+
+=============================================================================
+2.  INSTALLING AND RUNNING TOMCAT
+
+Tomcat requires a Java Runtime Environment conformant to JRE 1.1 or later,
+including any Java2 platform system.  If you wish to develop applications,
+you will need a Java compiler, such as the one included in a Java Development
+Kit 1.1 or later environment, including JDKs conformant with Java2.
+
+For detailed information about installing and running Tomcat, point your
+browser at file "doc/uguide/tomcat_ug.html" under the directory into which
+you unpacked the Tomcat distribution.
+
+
+=============================================================================
+3.  APPLICATION DEVELOPMENT USING TOMCAT
+
+Preliminary information on using Tomcat for developing Servlet/JSP based
+applications is provided in the included Application Developer's Guide.
+Point your browser at file "doc/appdev/index.html" under the directory into
+which you unpacked the Tomcat distribution.
+
+
+=============================================================================
+4.  TOMCAT: PAST, PRESENT, AND FUTURE
+
+- Version 3.0 (released 12/1999) was the initial release of Tomcat.  In 
+addition to implementing the Java Servlet and Server Pages specification, 
+this release featured a minimal Apache connector.
+
+- Tomcat 3.1 (released 4/2000) improved the Apache connection and added 
+connector support for Netscape and IIS web servers. It also added WAR file 
+support, automatic servlet reloading, and a command line tool (jspc) to 
+compile ahead of time the JSP pages that comprise your application.  Finally, 
+version 3.1 also focused on reorganizing the code (modularization, cleanup, 
+refactoring, removal of dead code, and separation of J2EE-specific code).
+
+- Tomcat 3.2 was the first performance tune-up, and also added a few new 
+features.
+
+- Tomcat 3.2.1 was a security update.  See section 7.3 for details.
+
+- Tomcat 3.2.2 was a bug fix release.  
+
+- Tomcat 3.2.3 is a security release.
+
+- Tomcat 3.2.4 is a bug fix release.  See section 7.1 for details.
+
+- Tomcat 4.0 is separate development from Tomcat 3.x.  It is based on the
+Catalina architecture, which is very different from the architecture of
+Tomcat 3.x.  In addition, Tomcat 4.0 is to be the reference implementation
+for the Servlet 2.3 and JSP 1.2 specifications.
+
+
+=============================================================================
+5.  NEW FEATURES IN THIS RELEASE
+
+Version 3.2.4 is strictly a bug fix release.  No new features have been 
+added.
+
+
+=============================================================================
+6.  KNOWN BUGS AND ISSUES
+
+6.1 Using An Absolute Path as Document Root Under Windows
+
+In the TOMCAT_HOME/conf/server.xml file, you can declare a relative or absolute
+directory pathname for the docBase attribute.  If you wish to use an absolute
+pathname on a Windows system, you MUST include the drive letter in order to
+conform to Java's definition of an absolute path on this platform:
+
+    GOOD:  c:\mydirectory\mydocbase
+    GOOD:  c:/mydirectory/mydocbase
+    BAD:   \mydirectory\mydocbase
+    BAD:   /mydirectory/mydocbase
+
+Under Unix, absolute pathnames must begin with a slash ('/') character.
+
+6.2 Container Managed Security
+
+Tomcat 3.2 has an implementation of container managed security,	as
+described in the Servlet API Specification, version 2.2, section 11.
+Please note the following information about this implementation:
+
+- BASIC and FORM based authentication should work correctly.  Please
+  report any bugs you encounter here at <http://jakarta.apache.org/site/bugs.html>.
+  The example application has a protected area defined at the following URL:
+
+	http://localhost:8080/examples/jsp/security/protected
+
+  which can be accessed by any user defined in the configuration file
+  $TOMCAT_HOME/conf/tomcat-users.xml that has been granted the
+  appropriate roles.  Form-based authentication is used by default,
+  but a commented out setting for Basic authentication is provided if
+  you wish to give it a try.
+
+  WARNING:  Basic authentication is not suitable for general security
+  use across the Internet, or across other insecure networks, because
+  usernames and passwords are sent encoded, but not encrypted, with
+  every single request.
+
+- DIGEST authentication and HTTPS client authentication (i.e. SSL)
+  are not supported in this release.
+
+6.3 Using RequestDispatcher.include() on a Welcome File [Bug Report #160]
+
+Using the following technique results in a response with incorrect content:
+
+- You have a subdirectory under your document root
+  (for example "subdir/").
+
+- This subdirectory contains a welcome file that you
+  have configured to be displayed when that subdirectory
+  is requested on a URL (for example "index.html").
+
+- You request a RequestDispatcher for path "/subdir"
+  or path "/subdir/" and then call include() on it.
+
+The same problem can occur when you do a <jsp:include/> to a page "/subdir"
+or "/subdir/" as well.
+
+A workaround is to ask for a RequestDispatcher on the complete context-
+relative path of the file you wish to have displayed, such as
+"/subdir/index.html".
+
+6.4 Automatic Servlet Reloading
+
+Tomcat 3.2 includes a feature whereby you can ask it to automatically
+reload servlet classes (loaded from either the WEB-INF/classes directory
+or a JAR file in the WEB-INF/lib directory) that have been changed.  This
+feature is experimental, and may not be completely functional.  In particular,
+changes to classes other than the servlet you are requesting do not trigger
+class reloads -- you will need to restart Tomcat to reflect changes in those
+classes.
+
+Reloading is enabled by including a reloadable="true" attribute on the
+<Context> element in the "conf/server.xml" file.  Note that automatic
+reload support is not recommended for production applications because of
+its experimental nature, and the extra overhead required to perform the
+necessary checks on every request.
+
+6.5 Avoiding "Out of environment space" errors on Windows 95/98
+
+This error can easily occur since the default amount of environment space is
+typically insufficient to run Tomcat.  Here are a couple of ways to avoid it.
+
+  A. If you use the MS-DOS Prompt to start Tomcat, execute Programs ->
+     MS-DOS Prompt.  Right-click the MS-DOS icon on the left of the title bar
+     and select Properties at the bottom of the menu.  In the MS-DOS Prompt
+     Properties dialog select the Memory tab.  In the "Initial environment:"
+     field, set a sufficiently high number.  If you are not sure, 3072 should
+     be plenty.  Click OK and close the MS-DOS Prompt window.  Execute
+     Programs -> MS-DOS Prompt again, navigate to the directory where you
+     installed Tomcat.  Set the JAVA_HOME environment variable if not set
+     already.  You should be able to execute "bin\startup" and "bin\shutdown"
+     to start and stop Tomcat without getting an "Out of environment space"
+     error.
+
+  B. If you want to start Tomcat by double clicking a batch file such as
+     startup.bat, you should right-click on the desired batch file in Windows
+     Explorer and select Properties to open the MS-DOS Prompt Properties
+     dialog.  Select the Memory tab and set the "Initial environment:" as
+     described above.  You may want to also select the Program tab and check
+     "Close on exit".  Then click OK.  A shortcut with these settings will be
+     created in same directory with the same base name as the batch file.  You
+     should be able to double-click the shortcut or the batch file to execute
+     without getting an "Out of environment space" error.  If you wish to
+     execute startup.bat and shutdown.bat in this fashion, you will need to do
+     the above for both files.  In addition, you need to provide for setting
+     JAVA_HOME.  This may be done by adding a "SET JAVA_HOME=path to your jdk"
+     line to your autoexec.bat or to the startup.bat and shutdown.bat files
+     themselves.
+
+6.6 URL's are now case sensitive on all operating systems
+
+As of Tomcat 3.2, URL's are case sensitive for all operating systems,
+including operating systems which have case insensitive file systems, such as
+Windows.  This represents a change from Tomcat 3.1, where URL's were case
+insensitive on case insensitive OS's.  This was done for a number of reasons,
+security and portability among them.
+
+A "non-portable" web application, i.e. one with case mismatches, which worked
+on a case insensitive OS under Tomcat 3.1 will show its non-portability when
+run under Tomcat 3.2.
+
+This can also cause URL's that look correct to actually be incorrect.  In
+Windows Explorer, a directory whose name fits within the MS-DOS 8.3 format
+may be displayed using a "formated" name.  For example, a directory named
+"MYDIR" may display as "Mydir".  A URL like "http://localhost/mysite/Mydir/
+index.jsp" would return "File Not Found" because the correct URL would be
+"http://localhost/mysite/MYDIR/index.jsp".  If you find URL's being
+mysteriously "not found", check for case mismatch.  Use the Windows Explorer
+Properties dialog or an MS-DOS window to check the actual case of the file
+and directory names.
+
+This can cause an additional problem when Tomcat is used with a case
+insensitive web server, such as IIS, where the web server serves the static
+content.  The web server could serve a static page with mismatched case in the
+URL. If that static page contains relative links to resources served by
+Tomcat, then invoking those links would carry the mismatched case to Tomcat
+where it cause the resource not to be found.
+
+6.7 Generated Configuration Files for Web Connectors
+
+At startup time, Tomcat normally generates configuration files like
+"tomcat-apache.conf" to reflect the contexts that are defined.  However, the
+generated files do NOT reflect any configuration settings found inside the
+web application deployment descriptor file (web.xml) for your application.
+You will need to configure any such settings that are relevant directly into
+your web server's configuration files.
+
+This is a known limitation of the design of the web connectors for Tomcat 3.2,
+and will be addressed by the introduction of the MOD_WARP connector in
+Tomcat 4.0.
+
+6.8 Limitation on Form Based Login
+
+If the pages you specify for <form-login-page> or <form-error-page> are within
+the area protected by a security constraint, Tomcat 3.2 will be unable to
+display them.  As a side effect of this problem, you will not be able to use
+a URL pattern of "/*" to protect your entire web application when using form
+based login.
+
+A workaround is to set up your web application with the form login page and
+form error page in the document root directory, place all other pages in one
+or more subdirectories, and establish security constraints to protect the
+subdirectories.
+
+6.9 Limitation on Document Base Paths
+
+Tomcat 3.2 is unable to support Windows SMB paths in a <Context> directive
+like this:
+
+        <Context path="/ctx" docBase="\\machine\share\path" />
+
+although this approach was supported in Tomcat 3.1, and is supported in
+Tomcat 4.0.  A workaround is to establish a drive mapping to "\\machine\share"
+and define your context like this:
+
+        <Context path="/ctx" docBase="r:\path" />
+
+where "r:" is mapped to this share.
+
+6.10 Resource Paths Can't Contain URL Escapes
+
+The path passed to javax.servlet.Context.getResource() and
+javax.servlet.Context.getResrouceAsStream() cannot contain URL escapes of
+the form %HH.  Paths containing any URL escapes will return null.
+
+6.11 AJP12 and SSL
+
+The AJP12 protocol does not provide a mechanism for identifying requests
+that arrived on a secure transport (e.g. SSL).  Tomcat assumes that any
+request that arrived on server port 443 is secure and sets the URL scheme
+to HTTPS.  Requests on any other port are assumed to be non-secure and
+will indicate a URL scheme of HTTP.  The AJP13 protocol does not suffer
+from this problem.
+
+
+===============================================================================
+7.  FIXES AND ENHANCEMENTS IN UPDATES
+
+
+7.1 Fixes and Enhancements in Release 3.2.4
+
+This section highlights the bugs fixed in this release.  
+
+  -  Cookie name expires is a reserved token (#1114)
+  -  Thread initialization problem in thread pool (#1745)
+  -  AJP12 returned invalid HTTP headers when redirecting to very 
+     long URLS (#2333)
+  -  Fixed casting problem in JspFactoryImpl.getPageContext().  (#4260)
+  -  Setting sesstion-timeout in web.xml did not prevent sessions from 
+     timing out.  (#4412)
+  -  Fixed race condition in ServerSocketFactory.getDefault().  (#4418)
+  -  Removed the restrictions on encoded spcecial characters in URLs
+     that was added as a security precaution in 3.2.3.  The encoded
+     special characters are not decoded and remain the URL and 
+     path info returned to servlets.
+  -  Jk_nt_service now supports the ability to be restarted automatically
+     by the Windows 2000 service control manager if Tomcat terminates
+     abnormally.
+  -  Fixed invalid servlet mapping in web.xml generated by JspC (#3474, #3499)
+  -  Added findResource() and findResources() to AdaptiveClassLoader12
+  -  A Date: HTTP header is now sent in responses when running stand 
+     alone. (#345)
+  -  Simple held on to a reference to removed objects preventing 
+     garbage collection.
+  -  Tomcat 3.2.4 now ships with JAXP 1.1.  Prior releases used 
+     JAXP 1.0.1.  Tomcat 3.2.4 remains completely compatible with
+     the older version of JAXP and there is no requirement for users
+     to upgrade to JAXP 1.1 unless their applications require the new
+     version.
+  -  Fixed NullPointerException in HttpConnectionHandler.  (#4577)
+     
+
+7.2 Security Vulnerabilities fixed in Tomcat 3.2.4
+
+The randomness of generated session ids has been enhanced to prevent the
+generation of guessable ids.
+
+
+7.3 Security vulnerabilities fixed in Tomcat 3.2.3
+
+Non-normalized URIs, for example /examples/jsp/security//protected/index.jsp or
+/examples/jsp/../jsp/security/protected/index.jsp would bypass the security
+constraints specified in web.xml.
+
+URIs are now normalized prior to use by the container.  Servlets will receive
+the normalized path from calls to HttpServletRequest.getRequestURI().  This is
+expected to become the behaviour defined in the Servlet 2.3 specification.
+
+Also, URL encodings for special characters are now forbidden in request URIs.
+If a request URI contains %25, %2E, %2F or %5c a 404 error will be returned.
+This prevents the use of URL encodings to bypass the URI normalization process.
+
+7.4 Security vulnerabilities fixed in Tomcat 3.2.2
+
+7.4.1 HTTP Requests With no Protocol
+
+An HTTP request with no protocol specified would return an unprocessed
+source for a JSP file.  For example
+
+GET /examples/jsp/num/numguess.jsp 
+
+would return the source for the numguess.jsp file.
+
+7.4.2
+
+Tomcat 3.2.2 beta releases prior to beta 3 had allowed URI components
+to be decoded twice.  This problem only appears when using JDK 1.3.0
+or later.  The double decode problem caused URL such as
+
+http://localhost:8080/%252e%252e/%252e%252e/%00.jsp
+
+to reveal a directory listing outside the web application.  Other
+versions of this same double decode attack could reveal the contents
+of files outside the web application.
+
+
+7.5 Security vulnerabilities fixed in Tomcat 3.2.1
+
+7.5.1 Protection of Resources in /WEB-INF and /META-INF Directories
+
+The servlet specification prohibits servlet containers from serving resources
+in the /WEB-INF and /META-INF directories of a web application archive directly
+to clients.  In Tomcat 3.2, this means that URLs like:
+
+   http://localhost:8080/examples/WEB-INF/web.xml
+
+will return an error message, rather than the contents of your deployment
+descriptor.  However, there is a vulnerability in Tomcat 3.2 that exposes
+this information if the client requests a URL like this instead:
+
+    http://localhost:8080/examples//WEB-INF/web.xml
+
+(note the double slash before "WEB-INF").  This vulnerability has been
+corrected in Tomcat 3.2.1.
+
+
+7.5.2 Show Source Vulnerability
+
+The example application delivered with Tomcat 3.2 included a mechanism to
+display the source code for the JSP page examples.  This mechanism could
+be used to bypass the restrictions on displaying sensitive information in
+the WEB-INF and META-INF directories.  This vulnerability has been removed.
+
+

Propchange: tomcat/site/trunk/docs/tomcat-3.2-doc/readme
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org