summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto')
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/apache.xml1287
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/iis.xml729
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/nes.xml521
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/project.xml81
4 files changed, 2618 insertions, 0 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/apache.xml b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/apache.xml
new file mode 100644
index 00000000..7e35b0e9
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/apache.xml
@@ -0,0 +1,1287 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE document [
+ <!ENTITY project SYSTEM "project.xml">
+]>
+<document url="apache.html">
+
+ &project;
+<copyright>
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+</copyright>
+<properties>
+<title>Apache HTTP Server HowTo</title>
+<author email="hgomez@apache.org">Henri Gomez</author>
+<author email="shachor@il.ibm.com">Gal Shachor</author>
+<date>$Date: 2011-06-30 21:16:43 +0200 (Thu, 30 Jun 2011) $</date>
+</properties>
+<body>
+<section name="Introduction">
+<p>
+This document explains how to connect Tomcat to the popular open source web server, Apache httpd.
+There is actually three versions of Apache HTTP Server, 1.3, 2.0 and 2.2 and all can be used with mod_jk,
+the Tomcat redirector module.
+</p>
+
+<p>
+It is recommended that you also read the
+<a href="../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+For more detailed configuration information consult the Reference Guide for
+<a href="../reference/worker.html">workers.properties</a>,
+<a href="../reference/uriworkermap.html">uriworkermap</a>
+and <a href="../reference/apache.html">Apache</a>.
+</p>
+
+<p><b>Waring: If Apache HTTP Server and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.</b> This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
+
+<p>
+This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
+but has been split off for organisational reasons.
+</p>
+
+<subsection name="Document Conventions and Assumptions">
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>/var/tomcat3</b>.
+A <a href="../generic_howto/workers.html">worker</a> is defined to be a tomcat process that accepts work from the Apache server.
+</p>
+</subsection>
+
+<subsection name="Supported Configuration">
+<p>
+The mod_jk module was developed and tested on:
+<ul>
+<li>
+Linux, FreeBSD, AIX, HP-UX, MacOS X, Solaris and should works on major Unixes platforms
+supporting Apache 1.3 and/or 2.0/2.2
+</li>
+<li>
+WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
+</li>
+<li>
+Cygwin (until you have an apache server and autoconf/automake support tools)
+</li>
+<li>
+Netware
+</li>
+<li>
+i5/OS V5R4 (System I) with Apache HTTP Server 2.0.58. Be sure to have the latest Apache PTF installed.
+</li>
+<li>
+Tomcat 3.2.x, Tomcat 3.3.x, Tomcat 4.0.x, Tomcat 4.1.x, Tomcat 5.0.x, Tomcat 5.5.x and Tomcat 6.
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</subsection>
+
+<subsection name="Who support ajp protocols ?">
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</subsection>
+
+<subsection name="How does it work ?">
+<p>
+In a nutshell a web server is waiting for client HTTP requests.
+When these requests arrive the server does whatever is needed to serve the
+requests by providing the necessary content.
+</p>
+
+<p>
+Adding a servlet container may somewhat change this behaviour.
+Now the web server needs also to perform the following:
+</p>
+
+<ul>
+<li>
+Load the servlet container adaptor library and initialise it (prior to serving requests).
+</li>
+<li>
+When a request arrives, it needs to check and see if a certain request belongs to a servlet,
+if so it needs to let the adaptor take the request and handle it.
+</li>
+</ul>
+
+<p>
+The adaptor on the other hand needs to know what requests it is going to serve,
+usually based on some pattern in the request URL, and to where to direct these requests.
+</p>
+
+<p>
+Things are even more complex when the user wants to set a configuration that uses virtual hosts,
+or when they want multiple developers to work on the same web server
+but on different servlet container JVMs.
+We will cover these two cases in the advanced sections.
+</p>
+
+</subsection>
+
+</section>
+
+<section name="Obtaining mod_jk">
+<p>
+mod_jk can be obtained in two formats - binary and source.
+Depending on the platform you are running your web server on, a binary version of mod_jk may be available.
+</p>
+
+<p>
+It is recommended to use the binary version if one is available.
+If the binary is not available, follow the instructions for building mod_jk from source.
+The mod_jk source can be downloaded from a mirror
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+here</a>
+</p>
+
+<p>
+The binaries for mod_jk are now available for several platforms.
+The binaries are located in subdirectories by platform.
+</p>
+
+<p>
+For some platforms, such as Windows, this is the typical way of obtaining mod_jk
+since most Windows systems do not have C compilers.
+</p>
+
+<p>
+For others, the binary distribution of mod_jk offers simpler installation.
+</p>
+
+<p>
+For example JK 1.2.x can be downloaded from a mirror
+<a href="http://tomcat.apache.org/download-connectors.cgi">
+here</a> (look for JK 1.2 Binary Releases). The "JK 1.2 Binary Releases" link contains binary version for a variety of
+operating systems for both Apache 1.3 and Apache 2.
+</p>
+
+</section>
+
+<section name="Installation">
+<p>
+mod_jk requires two entities:
+
+<ul>
+<li>
+<b>mod_jk.xxx</b> - The Apache HTTP Server module, depending on your operating system, it will be mod_jk.so, mod_jk.nlm or
+or MOD_JK.SRVPGM (see the build section).
+</li>
+<li>
+<b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory in the source download.
+</li>
+</ul>
+</p>
+
+<p>
+Also as with other Apache HTTP Server modules, mod_jk should be first installed on the modules directory of your
+Apache webserver, ie : /usr/lib/apache and you should update your <b>httpd.conf</b> file.
+</p>
+
+
+<subsection name="Disabling old mod_jserv">
+<p>
+If you've previously configured Apache to use <b>mod_jserv</b>, remove any <b>ApJServMount</b> directives
+from your httpd.conf.
+</p>
+
+<p>If you're including <b>tomcat-apache.conf</b> or <b>tomcat.conf</b>, you'll want to remove them as well -
+they are specific to <b>mod_jserv</b>.
+</p>
+
+<p>
+The mod_jserv configuration directives are not compatible with mod_jk !
+</p>
+</subsection>
+
+<subsection name="Using Tomcat auto-configure">
+<p>
+The auto-configure works only for a single Tomcat running on the same machine where Apache HTTP Server is running.
+The simplest way to configure Apache HTTP Server to use mod_jk is to turn on the Apache HTTP Server 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>
+
+<source>
+ #To be added at the end of your httpd.conf
+ Include $TOMCAT_HOME/conf/jk/mod_jk.conf-auto
+</source>
+
+<p>
+Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf
+</p>
+
+<p>
+This will tell Apache HTTP Server to use directives in the <b>mod_jk.conf-auto</b> file in
+the Apache configuration. This file is created by enabling the Apache
+auto-configuration by creating your workers.properties file at
+$TOMCAT_HOME/conf/jk/workers.properties and adding the listener to the Engine
+element in the server.xml file as per the following example.
+<b>Please note that this example is specific to Tomcat 5.x, unlike other sections of this document
+ which also apply to previous Tomcat branches.</b>
+</p>
+<source>
+ ...
+ &lt;Engine ...&gt;
+ ...
+ &lt;Listener className="org.apache.jk.config.ApacheConfig" modJk="/path/to/mod_jk.so" /&gt;
+ ...
+ &lt;/Engine&gt;
+ ...
+</source>
+
+<p>
+Then restart Tomcat and mod_jk.conf should be generated. For more information on
+this topic, please refer to the API documentation at the
+<a href="http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/jk/config/ApacheConfig.html">
+Tomcat docs website</a>.
+</p>
+
+</subsection>
+
+<subsection name="Custom mod_jk configuration">
+<p>
+You should use custom configuration when :
+</p>
+<ul>
+<li>
+You couldn't use <b>mod_jk.conf-auto</b> since Tomcat engine isn't on the same machine that your Apache web server,
+ie when you have an Apache in front of a Tomcat Farm.
+</li>
+<li>
+Another case for custom configuration is when your Apache is in front of many different Tomcat engines,
+each one having it's own configuration, a general case in ISP hosting
+</li>
+<li>
+Also all Apache webmaster will retain custom configuration to be able to tune the settings
+to their real needs.
+</li>
+</ul>
+
+</subsection>
+
+<subsection name="Simple configuration example">
+<p>
+Here is a simple configuration:
+</p>
+
+<source>
+ # Load mod_jk module
+ LoadModule jk_module libexec/mod_jk.so
+ # Declare the module for &lt;IfModule directive&gt; (remove this line on Apache 2.0.x)
+ AddModule mod_jk.c
+ # Where to find workers.properties
+ JkWorkersFile /etc/httpd/conf/workers.properties
+ # Where to put jk shared memory
+ JkShmFile /var/log/httpd/mod_jk.shm
+ # Where to put jk logs
+ JkLogFile /var/log/httpd/mod_jk.log
+ # Set the jk log level [debug/error/info]
+ JkLogLevel info
+ # Select the timestamp log format
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+ # Send servlet for context /examples to worker named worker1
+ JkMount /examples/servlet/* worker1
+ # Send JSPs for context /examples to worker named worker1
+ JkMount /examples/*.jsp worker1
+</source>
+
+</subsection>
+</section>
+
+<section name="mod_jk Directives">
+<p>
+We'll discuss here the mod_jk directives and details behind them
+</p>
+
+<subsection name="Define workers">
+<p>
+<b>JkWorkersFile</b> specify the location where mod_jk will find the workers definitions.
+
+<source>
+ JkWorkersFile /etc/httpd/conf/workers.properties
+</source>
+
+<br/>
+<br/>
+</p>
+</subsection>
+
+<subsection name="Logging">
+<p>
+<b>JkLogFile</b> specify the location where mod_jk is going to place its log file.
+</p>
+
+<source>
+ JkLogFile /var/log/httpd/mod_jk.log
+</source>
+
+<p>
+Since JK 1.2.3 for Apache 2.0/2.2 and JK 1.2.16 for Apache 1.3 this can also
+be used for piped logging:
+</p>
+
+<source>
+ JkLogFile "|/usr/bin/rotatelogs /var/log/httpd/mod_jk.log 86400"
+</source>
+
+<p>
+<b>JkLogLevel</b>
+set the log level between :
+</p>
+
+<ul>
+<li>
+<b>info</b> log will contains standard mod_jk activity (default).
+</li>
+<li>
+<b>error</b> log will contains also error reports.
+</li>
+<li>
+<b>debug</b> log will contains all information on mod_jk activity
+</li>
+</ul>
+
+<source>
+ JkLogLevel info
+</source>
+
+<p>
+<code>info</code> should be your default selection for normal operations.
+<br/>
+<br/>
+</p>
+
+<p>
+<b>JkLogStampFormat</b> will configure the date/time format found on mod_jk logfile.
+Using the strftime() format string it's set by default to <b>"[%a %b %d %H:%M:%S %Y]"</b>
+</p>
+
+<source>
+ JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
+</source>
+
+<p>
+<br/>
+<br/>
+</p>
+
+<p>
+<b>JkRequestLogFormat</b> will configure the format of mod_jk individual request logging.
+Request logging is configured and enabled on a per virtual host basis.
+To enable request logging for a virtual host just add a JkRequestLogFormat config.
+The syntax of the format string is similar to the Apache LogFormat command,
+here is a list of the available request log format options:
+</p>
+
+<p>
+<table>
+ <tr><th>Options</th><th>Description</th></tr>
+ <tr><td>%b</td><td>Bytes sent, excluding HTTP headers (CLF format)</td></tr>
+ <tr><td>%B</td><td>Bytes sent, excluding HTTP headers</td></tr>
+ <tr><td>%H</td><td>The request protocol</td></tr>
+ <tr><td>%m</td><td>The request method</td></tr>
+ <tr><td>%p</td><td>The canonical Port of the server serving the request</td></tr>
+ <tr><td>%q</td><td>The query string (prepended with a ? if a query string exists, otherwise an empty string)</td></tr>
+ <tr><td>%r</td><td>First line of request</td></tr>
+ <tr><td>%s</td><td>Request HTTP status code</td></tr>
+ <tr><td>%T</td><td>Request duration, elapsed time to handle request in seconds '.' micro seconds</td></tr>
+ <tr><td>%U</td><td>The URL path requested, not including any query string.</td></tr>
+ <tr><td>%v</td><td>The canonical ServerName of the server serving the request</td></tr>
+ <tr><td>%V</td><td>The server name according to the UseCanonicalName setting</td></tr>
+ <tr><td>%w</td><td>Tomcat worker name</td></tr>
+ <tr><td>%R</td><td>Session route name (available with 1.2.19 and up)</td></tr>
+</table>
+
+<source>
+ JkRequestLogFormat "%w %V %T"
+</source>
+
+<br/>
+<br/>
+</p>
+
+</subsection>
+
+<subsection name="Forwarding">
+<p>
+The directive JkOptions allow you to set many forwarding options which will enable (+)
+or disable (-) following option. Without any leading signs, options will be enabled.
+<br/>
+<br/>
+</p>
+
+<p>
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
+Exactly one of them is required, a negative sign prefix is not allowed with them.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
+<br/>
+<br/>
+</p>
+
+<p>
+All options are inherited from the global server to virtual hosts.
+Options that support enabling (plus options) and disabling (minus options),
+are inherited in the following way:
+<br/>
+<br/>
+options(vhost) = plus_options(global) - minus_options(global) + plus_options(vhost) - minus_options(vhost)
+<br/>
+<br/>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
+
+<source>
+ JkOptions +ForwardURIProxy
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
+
+<source>
+ JkOptions +ForwardURICompatUnparsed
+</source>
+
+<br/>
+<br/>
+</p>
+<p>
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
+
+<source>
+ JkOptions +ForwardURICompat
+</source>
+
+<br/>
+<br/>
+</p>
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<source>
+ JkOptions +ForwardURIEscaped
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br/>
+<br/>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realise such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<source>
+ JkOptions +RejectUnsafeURI
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
+directive of Apache web server. As such mod_dir should be available to Apache,
+statically or dynamically (DSO)
+<br/>
+<br/>
+</p>
+
+<p>
+When DirectoryIndex is configured, Apache will create sub-requests for
+each of the local-url's specified in the directive, to determine if there is a
+local file that matches (this is done by stat-ing the file).
+</p>
+
+<p>
+If ForwardDirectories is set to false (default) and Apache doesn't find any
+files that match, Apache will serve the content of the directory (if directive
+Options specifies Indexes for that directory) or a <code>403 Forbidden</code> response (if
+directive Options doesn't specify Indexes for that directory).
+</p>
+
+<p>
+If ForwarDirectories is set to true and Apache doesn't find any files that
+match, the request will be forwarded to Tomcat for resolution. This is used in
+cases when Apache cannot see the index files on the file system for various
+reasons: Tomcat is running on a different machine, the JSP file has been
+precompiled etc.
+</p>
+
+<p>Note that locally visible files will take precedence over the
+ones visible only to Tomcat (i.e. if Apache can see the file, that's the one
+that's going to get served). This is important if there is more then one type of
+file that Tomcat normally serves - for instance Velocity pages and JSP pages.
+
+<source>
+ JkOptions +ForwardDirectories
+</source>
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>ForwardLocalAddress</b>, you ask mod_jk to send the local address,
+of the Apache web server instead remote client address. This can be used by
+Tomcat remote address valve for allowing connections only from registered Apache
+web servers.
+
+<source>
+ JkOptions +ForwardLocalAddress
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>FlushPackets</b>, you ask mod_jk to flush Apache's connection
+buffer after each AJP packet chunk received from Tomcat. This option can have
+a strong performance penalty for Apache and Tomcat as writes are performed
+more often than would normally be required (ie: at the end of each
+response).
+
+<source>
+ JkOptions +FlushPackets
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>FlushHeader</b>, you ask mod_jk to flush Apache's connection
+buffer after the response headers have been received from Tomcat.
+
+<source>
+ JkOptions +FlushHeader
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>DisableReuse</b>, you ask mod_jk to close connections immediately
+after their use. Normally mod_jk uses persistent connections and pools idle
+connections to reuse them, when new requests have to be sent to Tomcat.
+</p>
+
+<p>
+Using this option will have a strong performance penalty for Apache and Tomcat.
+Use this only as a last resort in case of unfixable network problems.
+If a firewall between Apache and Tomcat silently kills idle connections,
+try to use the worker attribute socket_keepalive in combination with an appropriate
+TCP keepalive value in your OS.
+
+<source>
+ JkOptions +DisableReuse
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>ForwardKeySize</b>, you ask mod_jk, when using ajp13, to forward also the SSL Key Size as
+required by Servlet API 2.3.
+This flag shouldn't be set when servlet engine is Tomcat 3.2.x (off by default).
+
+<source>
+ JkOptions +ForwardKeySize
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>ForwardSSLCertChain</b>, you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <code>SSL_CLIENT_CERT</code> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <code>SSL_CLIENT_CERT_CHAIN</code> to Tomcat via the AJP connector.
+<br/>
+This directive exists only since version 1.2.22.
+<source>
+ JkOptions +ForwardSSLCertChain
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+The directive <b>JkEnvVar</b> allows you to forward environment variables
+from Apache server to Tomcat engine.
+You can add a default value as a second parameter to the directive.
+If the default value is not given explicitly, the variable
+will only be send, if it is set during runtime.
+<br/>
+The variables can be retrieved on the Tomcat side as request attributes
+via request.getAttribute(attributeName).
+Note that the variables send via JkEnvVar will not be listed
+in request.getAttributeNames().
+<br/>
+<br/>
+The variables are inherited from the global server to virtual hosts.
+
+<source>
+ JkEnvVar SSL_CLIENT_V_START undefined
+</source>
+<br/>
+<br/>
+</p>
+
+</subsection>
+
+<subsection name="Assigning URLs to Tomcat">
+<p>
+If you have created a custom or local version of mod_jk.conf-local as noted above,
+you can change settings such as the workers or URL prefix.
+</p>
+
+<p>
+<b>JkMount</b> directive assign specific URLs to Tomcat.
+In general the structure of a JkMount directive is:
+</p>
+
+<source> JkMount [URL prefix] [Worker name]</source>
+
+<source>
+ # send all requests ending in .jsp to worker1
+ JkMount /*.jsp worker1
+ # send all requests ending /servlet to worker1
+ JkMount /*/servlet/ worker1
+ # send all requests jsp requests to files located in /otherworker will go worker2
+ JkMount /otherworker/*.jsp worker2
+</source>
+
+<p>
+You can use the JkMount directive at the top level or inside &lt;VirtualHost&gt; sections of your httpd.conf file.
+</p>
+</subsection>
+
+<subsection name="Configuring Apache to serve static web application files">
+<p>
+If the Tomcat Host appBase (webapps) directory is accessible by the Apache web server,
+Apache can be configured to serve web application context directory static files instead
+of passing the request to Tomcat.
+</p>
+
+<p>
+Caution: For security reasons is is strongly recommended that JkMount is used to
+pass all requests to Tomcat by default and JkUnMount is used to explicitly
+exclude static content to be served by httpd. It should also be noted that
+content served by httpd will bypass any security constraints defined in the
+application's web.xml.
+</p>
+
+<p>Use Apache's <b>Alias</b> directive to map a single web application context directory into Apache's
+document space for a VirtualHost:
+</p>
+
+<source>
+ # Static files in the examples webapp are served by apache
+ Alias /examples /vat/tomcat3/webapps/examples
+ # All requests go to worker1 by default
+ JkMount /* worker1
+ # Serve html, jpg and gif using httpd
+ JkUnMount /*.html worker1
+ JkUnMount /*.jpg worker1
+ JkUnMount /*.gif worker1
+</source>
+
+<p>
+Starting with mod_jk 1.2.6 for Apache 2.0/2.2 and 1.2.19 for Apache 1.3, it's possible to exclude some URL/URI from
+jk processing by setting the env var <b>no-jk</b>, for example with the SetEnvIf Directive.
+</p>
+
+<p>
+You could use <b>no-jk</b> env var to fix problem with mod_alias or mod_userdir
+directive when jk and alias/userdir URLs matches.
+</p>
+
+<source>
+ # All URL goes to tomcat except the one containing /home
+ &lt;VirtualHost *:80&gt;
+ ServerName testxxx.mysys
+ DocumentRoot /www/testxxx/htdocs
+
+ # Use SetEnvIf to st no-jk when /home/ is encountered
+ SetEnvIf Request_URI "/home/*" no-jk
+
+ # Now /home will goes to /home/dataxxx/
+ Alias /home /home/dataxxx/
+
+ &lt;Directory "/home/dataxxx"&gt;
+ Options Indexes MultiViews
+ AllowOverride None
+ Order allow,deny
+ Allow from all
+ &lt;/Directory&gt;
+
+ JkMount /* myssys-xxx
+
+ &lt;/VirtualHost&gt;
+</source>
+
+
+<p>
+Use the mod_jk <b>JkAutoAlias</b> directive to map all web application context directories
+into Apache's document space.
+</p>
+
+<p>
+Attempts to access the WEB-INF or META-INF directories within a web application context
+or a Web Archive *.war within the Tomcat Host appBase (webapps) directory will fail with an
+<code>HTTP 403, Access Forbidden</code>
+</p>
+
+<source>
+ # Static files in all Tomcat webapp context directories are served by apache
+ JkAutoAlias /var/tomcat3/webapps
+
+ # All requests go to worker1 by default
+ JkMount /* ajp13
+ # Serve html, jpg and gif using httpd
+ JkUnMount /*.html ajp13
+ JkUnMount /*.jpg ajp13
+ JkUnMount /*.gif ajp13
+</source>
+
+<p>
+If you encoded all your URLs to contain the session id
+(<code>;jsessionid=...</code>), and you later decide, you want to
+move part of the content to Apache httpd, you can tell
+mod_jk to strip off all session ids from URLs for
+those requests, that do not get forwarded via mod_jk.
+</p>
+
+<p>
+You enable this feature by setting JkStripSession to On.
+It can be enabled individually for virtual servers. The default
+value is Off.
+</p>
+
+</subsection>
+</section>
+
+<section name="Building mod_jk on Unix">
+<p>
+The mod_jk build use the widely used configure system.
+</p>
+<subsection name="Prepare your mod_jk configure from subversion">
+In case you get source from subversion, ie without an existing configure script,
+you should have autoconf for configuration and installation.
+<p>
+To create tomcat-connectors's autoconf script, you will need libtool
+1.5.2, automake 1.10 and autoconf 2.59 or newer. The use of more recent
+versions is encouraged, e.g. for reliable detection of the features of
+recent version of operating systems.
+</p><p>
+Those tools will not be required if you are just using a package downloaded from apache.org,
+they are only required for developers.
+</p>
+<p>
+To create the configure script just type :
+
+<screen>
+<type>./buildconf.sh</type>
+</screen>
+</p>
+</subsection>
+
+<subsection name="Using configure to build mod_jk">
+<p>Here's how to use configure to prepare mod_jk for building, just type:
+<source>
+./configure [autoconf arguments] [tomcat-connectors arguments]
+</source>
+</p>
+
+<p>
+You could set <b>CFLAGS</b> and <b>LDFLAGS</b> to add some platform specifics:
+</p>
+
+<screen>
+<type>LDFLAGS=-lc ./configure -with-apxs=/home2/local/apache/bin/apxs</type>
+</screen>
+
+<p>
+If you want to build mod_jk for different version of Apache httpd, like 1.3, 2.0 and 2.2,
+you need to go through the full build process for each of them.
+Please note, that httpd 2.0 and 2.2 modules are <b>not</b> compatible. The mod_jk directory
+used is "apache-2.0" in both cases, but you need to compile separately.
+<ul>
+<li>
+use configure and indicate the correct Apache httpd apxs location (--with-apxs)
+</li>
+<li>
+use make
+</li>
+<li>
+copy the resulting mod_jk.so binary from the apache-1.3 or apache-2.0 subdirectory
+to the Apache httpd modules location.
+</li>
+<li>
+make clean (to remove all previously compiled object files)
+</li>
+<li>
+Start over with the apxs location for your next Apache httpd version.
+</li>
+</ul>
+
+</p>
+</subsection>
+
+<subsection name="configure arguments">
+<p>
+<table>
+ <tr valign="top"><th>Apache related parameters</th><th></th></tr>
+ <tr valign="top">
+ <td>--with-apxs[=FILE]</td>
+ <td>FILE is the location of the apxs tool. Default is finding apxs in PATH.
+It builds a shared Apache module. It detects automatically the Apache version.
+(2.0/2.2 and 1.3)</td>
+ </tr>
+ <tr valign="top"><td>--with-apache=DIR</td>
+ <td>DIR is the path where apache sources are located.
+The apache sources should have been configured before configuring mod_jk.
+DIR is something like: /home/apache/apache_1.3.19
+It builds a static Apache module.</td>
+ </tr>
+ <tr valign="top"><td>--enable-EAPI</td>
+ <td>This parameter is needed when using Apache-1.3 and mod_ssl, otherwise you will get the error message:
+"this module might crash under EAPI!" when loading mod_jk.so in httpd.
+Not needed when --with-apxs has been used</td>
+</tr>
+ <tr valign="top"><td>--enable-prefork</td>
+ <td>
+In case you build mod_jk for a multi-threaded Apache httpd 2.0/2.2 MPM (Multi-Processing Module),
+some areas of mod_jk code need to be synchronised to make it thread-safe.
+Because configure can not easily detect, whether your are using a multi-threaded MPM,
+mod_jk by default is always build thread-safe for Apache httpd 2.0/2.2.
+If you are sure, that your MPM is not multi-threaded, you can use "--enable-prefork"
+to force the removal of the synchronisation code (thus increasing performance a bit).
+For instance, the prefork MPM is not multi-threaded. For Apache httpd 1.3
+this flag will be set automatically.</td>
+</tr>
+ <tr valign="top"><td>--disable-trace</td>
+ <td>
+When using log level "trace", mod_jk traces a lot of function calls with
+"enter" and "exit" log messages. Even if the log level is not "trace",
+comparing the log levels to decide about logging has some performance
+impact.<br/>
+If you use "--disable-trace", then the trace log code doesn't get compiled
+into the module binary and you might save some cycles during execution.<br/>
+Even with "--disable-trace" logging debug messages with debug log level
+will still be possible.</td>
+</tr>
+ <tr valign="top"><td>--enable-api-compatibility</td>
+ <td>
+Only use httpd API functions available in all httpd production releases
+of the chosen major httpd release branch. This improves binary
+compatibility of module builds with httpd releases older than the release
+against mod_jk is build (only between minor httpd versions).</td>
+</tr>
+ <tr valign="top"><td>--enable-flock</td>
+ <td>
+In case the operating system supports flock system call use this flag to enable this
+faster locks that are implemented as system call instead emulated by GNU C library.<br/>
+However those locks does not work on NFS mounted volumes, so you can use
+"--enable-flock" during compile time to force the flocks() calls.</td>
+</tr>
+
+</table>
+<br/>
+<table>
+ <tr valign="top"><th>DEPRECATED: JNI related parameters</th><th></th></tr>
+ <tr valign="top"><td>--enable-jni</td>
+ <td>Build the JNI worker and so the build process will require
+some information about your Java Environment</td>
+ </tr>
+ <tr valign="top"><td>--with-java-home=DIR</td>
+ <td>DIR is the patch to the JDK root directory. Something like: /opt/java/jdk12</td>
+ </tr>
+ <tr valign="top"><td>--with-os-type=SUBDIR</td><td>SUBDIR is the os-type subdirectory,
+ configure should guess it correctly.</td>
+ </tr>
+ <tr valign="top"><td>--with-arch-type=SUBDIR</td><td>SUBDIR is the arch subdirectory,
+ configure should guess it correctly.</td>
+ </tr>
+ <tr valign="top"><td>--with-java-platform=VAL</td><td>VAL is the Java platform 1 is 1.1.x and 2 is for 1.2 and higher,
+ configure should guess it correctly.</td>
+ </tr>
+</table>
+</p>
+<warn>The JNI option has been deprecated. It will likely not work. Do not use it.</warn>
+</subsection>
+
+<subsection name="Examples of configure use">
+
+<screen>
+<note>Apache 1.3 and 2.0/2.2 build</note>
+<type>./configure --with-apxs=/usr/sbin/apxs</type><br/>
+<type>make</type><br/>
+<type>cp ./apache-1.3/mod_jk.so /usr/lib/apache</type><br/>
+<type>make clean</type><br/>
+<type>./configure --with-apxs=/usr/sbin/apxs2</type><br/>
+<type>make</type><br/>
+<type>cp ./apache-2.0/mod_jk.so /usr/lib/apache2</type><br/>
+</screen>
+
+<screen>
+<note>Apache 2.0/2.2 build with JNI support</note>
+<type>./configure --with-apxs2=/opt/apache2/bin/apxs \</type>
+<typenext>--with-java-home=${JAVA_HOME} --with-java-platform=2 \</typenext>
+<typenext>--enable-jni</typenext><br/>
+</screen>
+<warn>The JNI option has been deprecated. It will likely not work. Do not use it.</warn>
+</subsection>
+
+</section>
+
+<section name="Building mod_jk for Apache on Windows NT/2K/XP">
+<p>
+The module 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>
+<ul>
+<li>
+Change directory to the apache 1.3 or apache 2.0 source directory depending on your version of Apache.
+</li>
+<li>
+If you want to build mod_jk for Apache 1.3, set an <b>APACHE1_HOME</b> environment variable which points
+to where your Apache 1.3 is installed.
+A mod_jk module for Apache 2.0 build will require <b>APACHE2_HOME</b> environment variable to be set.
+</li>
+<li>
+Copy mod_jk.so to Apache's modules directory.
+</li>
+</ul>
+<p>
+An example on how to build mod_jk for Apache 1.3:
+</p>
+<screen>
+<note>Set location for Apache 1.3 sources</note>
+<typedos>set APACHE1_HOME=c:\apache13</typedos>
+<note>Change directory to the mod_jk module for Apache 1.3</note>
+<typedos>cd c:\home\apache\jk\native\apache-1.3</typedos>
+<note>Build the sources using MSDEV</note>
+<typedos>MSDEV mod_jk.dsp /MAKE ALL</typedos>
+<note>Copy the dll to your apache modules directory</note>
+<typedos>cp release\mod_jk.so c:\apache13\modules\</typedos>
+</screen>
+
+<p>
+An example on how to build mod_jk for Apache 2.0:
+</p>
+<screen>
+<note>Set location for Apache 2.0 sources</note>
+<typedos>set APACHE2_HOME=c:\apache20</typedos>
+<note>Change directory to the mod_jk module for Apache 2.0</note>
+<typedos>cd c:\home\apache\jk\native\apache-2.0</typedos>
+<note>Build the sources using MSDEV</note>
+<typedos>MSDEV mod_jk.dsp /MAKE ALL</typedos>
+<note>Copy the dll to your apache modules directory</note>
+<typedos>cp release\mod_jk.so c:\apache20\modules\</typedos>
+</screen>
+
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+Also, ApacheCore.lib is expected to exist in the <b>${APACHEX_HOME}\src\CoreD</b> and
+<b>${APACHEX_HOME}\src\CoreR</b> directories before linking will succeed.
+You will need to build enough of the Apache source to create these libraries.
+This will build both release and debug versions of the redirector plug-in (mod_jk).
+An alternative will be to open mod_jk.dsp in msdev and build it using the build menu.
+</p>
+</section>
+
+<section name="Building mod_jk for Apache on System I - i5/OS (OS400)">
+<p>
+Since OS400 V4R5, System I (AS/400) has used Apache 2.0 as their primary web server,
+replacing the old IBM webserver.
+It's now possible to build mod_jk on System I thanks to the help of the IBM
+Rochester Labs which has provided information and patches to adapt mod_jk to i5/OS.
+</p>
+<p>
+You should have at least Apache 2.0.58 (product 5722DG1), a C Compiler and IFS.
+Apache 2.0.58 is provided with the most recent set of PTFs for the iSeries Apache
+server, which can be found at <a href="http://www.ibm.com/servers/eserver/iseries/software/http/">
+http://www.ibm.com/servers/eserver/iseries/software/http/</a>
+</p>
+<p>
+The all latest Apache 2 for i5/OS V5R3 (or V5R4) is now 2.0.58 (as of 2007/04/17).
+Be sure to have the latest PTFs loaded if you want to make use of jk 1.2.15 and higher.
+NB: The latest mod_jk known to work on i5/OS V5R3 was 1.2.19.
+</p>
+<p>
+New in i5/OS V5R4, UTF is required, also for Apache modules, as such Apache modules do not require
+translations to/from EBCDIC but works should be done to port mod_jk 1.2.23 (and higher) to V5R4.
+
+From the V5R4 Infocenter :
+
+As of i5/OS(tm) V5R4, modules must be recompiled with a UTF locale. This creates an environment where locale-dependent C runtime functions assume
+that string data is encoded in UTF-8. Any hardcoded constants can be encoded in UTF-8 by adding a #pragma convert(1208) statement in the module.
+Additionally, input data from the client will no longer be converted to EBCDIC but will be passed as-is.
+Output data sent from the module is not converted either so it must be encoded in ASCII or UTF8 as required.
+APR and HTTP APIs as of V5R4, expect data in UTF-8. Note that several APIs have additional functions that allow a CCSID to be set to
+indicate the encoding of the parameters being passed. Conversion functions between UTF-8 and EBCDIC have been added.
+Be sure to review APIs used by your module to be aware of current changes.
+
+</p>
+<p>
+To configure mod_jk on System I use the CL source provided with the mod_jk source.
+</p>
+<ul>
+<li>
+Get the latest mod_jk source and untar it on a Windows or Unix boxes
+</li>
+<li>
+Create a directory in IFS, ie /home/apache
+</li>
+<li>
+Send the whole jk source directory to System I directory via FTP.
+</li>
+<li>
+Then go to the System I command line :
+</li>
+</ul>
+<screen>
+<note>Create mod_jk library</note>
+<type5250>CRTLIB MOD_JK TEXT(‘Apache mod'jk tomcat connector module')</type5250>
+<note>Create service program source file</note>
+<type5250>CRTSRCPF MOD_JK/QSRVSRC TEXT(‘Service program source file’)</type5250>
+<note>Create the CL build program source file</note>
+<type5250>CRTSRCPF FILE(MOD_JK/QCLSRC) TEXT(‘Build program source file’)</type5250>
+<note>Edit the service program source file</note>
+<type5250>STRSEU MOD_JK/QSRVSRC MOD_JK</type5250>
+</screen>
+<p>
+In the edited file, specify that only jk_module should be exported :
+<screen>
+<note> Columns . . : 1 71 Edit MOD_JK/QSRVSRC </note>
+<note> SEU==> MOD_JK </note>
+<note> *************** Beginning of data ************************************* </note>
+<note>0001.00 STRPGMEXP PGMLVL(*CURRENT) </note>
+<note>0002.00 EXPORT SYMBOL("jk_module") </note>
+<note>0003.00 ENDPGMEXP </note>
+<note> ****************** End of data **************************************** </note>
+</screen>
+</p>
+<p>
+You could start to build all the modules of mod_jk (cases for V5R4 or previous releases):
+</p>
+<screen>
+<note>Copy the CL build program source for i5/OS before V5R4 from IFS</note>
+<type5250>CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qclsrc') +</type5250>
+<note>TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)</note>
+<note>Build the CL build program</note>
+<type5250>CRTCLPGM PGM(MOD_JK/BLDJK) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program')</type5250>
+<note>Launch the build</note>
+<type5250>CALL MOD_JK/BLDJK</type5250><br/>
+<note>If the build if successfull, copy the new mod_jk module</note>
+<type5250>CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</type5250>
+</screen>
+<screen>
+<note>Copy the CL build program source for i5/OS V5R4 from IFS</note>
+<type5250>CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk54.qclsrc') +</type5250>
+<note>TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK54.MBR') MBROPT(*REPLACE)</note>
+<note>Build the CL build program for i5/OS V5R4</note>
+<type5250>CRTCLPGM PGM(MOD_JK/BLDJK54) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program') TGTRLS(*CURRENT)</type5250>
+<note>Launch the build for i5/OS V5R4</note>
+<type5250>CALL MOD_JK/BLDJK54</type5250><br/>
+<note>If the build if successfull, copy the new mod_jk module</note>
+<type5250>CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</type5250>
+</screen>
+<p>
+Next, you should restart your Apache 2.0 instance and enjoy this piece of OpenSource on System I.
+</p>
+<screen>
+<note>ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</note>
+<note>STRTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</note>
+</screen>
+</section>
+
+<section name="Building mod_jk for Apache on MacOS/X">
+<p>
+Mac OS X (10.2.x) build notes :
+</p>
+<p>
+Assuming that you are root :
+</p>
+<screen>
+<note>For Apache 1.3:</note>
+<type>./configure --with-apxs=/usr/sbin/apxs</type>
+<type>cd apache-1.3</type>
+<type>make -f Makefile.apxs</type>
+<type>cp mod_jk.so /etc/libexec/httpd</type>
+
+<note>For Apache 2.0:</note>
+<type>./configure --with-apxs=/usr/local/apache2/bin/apxs</type>
+<note>(you should point to the directory where you installed Apache 2.0)</note>
+<type>cd apache-2.0</type>
+<type>make -f Makefile.apxs install</type>
+</screen>
+</section>
+
+<section name="Getting mod_jk linked statically with Apache">
+<p>
+mod_jk allows to install mod_jk in the Apache source tree to get a statically
+linked mod_jk. Having mod_jk in the httpd executable brings some performance
+improvements. The configure option --with-apache prepare mod_jk to install it
+in the Apache source tree.
+The option --with-apache works both for Apache-1.3 and Apache-2.0.
+The examples below show how to get mod_jk in the httpd process.
+</p>
+
+<subsection name="Installation in Apache-2.0">
+<screen>
+<note> /home/apache20/httpd-2.0.43 is the directory where the httpd-2.0 sources
+are located. </note>
+<type>./configure --with-apache=/home/apache20/httpd-2.0.43</type><br/>
+<type>make</type><br/>
+<note>Install the mod_jk library and other files in
+/home/apache20/httpd-2.0.43/modules: </note>
+<type>make install</type><br/>
+<note> It is not possible to configure Apache directly because the config.m4 of mod_jk must
+be added to the configure of httpd-2.0. </note>
+<type>cd /home/apache20/httpd-2.0.43</type>
+<type>sh buildconf</type>
+<type>configure ... --with-mod_jk</type>
+<type>make</type>
+<type>make install</type><br/>
+</screen>
+<p>
+The enable-jk=share and enable-jk=static are not supported. --with-mod_jk only
+allow static linking of mod_jk.
+</p>
+</subsection>
+
+<subsection name="Installation in Apache-1.3">
+<screen>
+<note> /home/apache/apache_1.3.27 is the directory where the apache-1.3 sources
+are located. </note>
+<type>./configure --with-apache=/home/apache/apache_1.3.27</type><br/>
+<type>make</type><br/>
+<note>Install the libjk library, mod_jk.c, includes and other files in
+/home/apache/apache_1.3.27/src/modules/jk: </note>
+<type>make install</type><br/>
+<note> Configure in the Apache sources: </note>
+<type>cd /home/apache/apache_1.3.27</type>
+<type>configure ... --enable-module=dir --disable-shared=dir \</type>
+<typenext> --activate-module=src/modules/jk/libjk.a \</typenext>
+<typenext> --disable-shared=jk</typenext>
+<type>make</type>
+<type>make install</type><br/>
+</screen>
+<p>
+The --enable-shared=jk is also working and builds a dso file.
+</p>
+<screen>
+<note> Just change the configure in the Apache sources: </note>
+<type>configure ... --enable-module=dir --enable-shared=dir \</type>
+<typenext> --activate-module=src/modules/jk/libjk.a \</typenext>
+<typenext> --enable-shared=jk</typenext>
+</screen>
+</subsection>
+
+</section>
+</body>
+</document>
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/iis.xml b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/iis.xml
new file mode 100644
index 00000000..e79c1611
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/iis.xml
@@ -0,0 +1,729 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE document [
+ <!ENTITY project SYSTEM "project.xml">
+]>
+<document url="iis.html">
+
+ &project;
+<copyright>
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+</copyright>
+<properties>
+<title>IIS HowTo</title>
+<author email="hgomez@apache.org">Henri Gomez</author>
+<author email="shachor@il.ibm.com">Gal Shachor</author>
+<author email="yoavs@apache.org">Yoav Shapira</author>
+<date>$Date: 2010-03-15 16:40:37 +0100 (Mon, 15 Mar 2010) $</date>
+</properties>
+<body>
+<section name="Introduction">
+<p>
+This document explains how to set up IIS to cooperate with Tomcat.
+</p>
+
+<p>
+Normally IIS can not execute Servlets and Java Server Pages (JSPs),
+configuring IIS to use the JK ISAPI redirector plugin will let IIS send servlet and
+JSP requests to Tomcat (and this way, serve them to clients).
+</p>
+
+<p>
+It is recommended that you also read the
+<a href="../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+For more detailed configuration information consult the Reference Guide for
+<a href="../reference/workers.html">workers.properties</a>,
+<a href="../reference/uriworkermap.html">uriworkermap</a>
+and <a href="../reference/iis.html">IIS</a>.
+</p>
+
+
+<subsection name="Document Conventions and Assumptions">
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>.
+A worker is defined to be a tomcat process that accepts work from the IIS server.
+</p>
+</subsection>
+
+
+<subsection name="Supported Configuration">
+<p>
+The IIS-Tomcat redirector was developed and tested on:
+<ul>
+<li>
+WinNT4.0-i386 SP4/SP5/SP6a (should be able to work with other service packs), Win2K and WinXP and Win98
+</li>
+<li>
+IIS4.0 and PWS4.0 (numerous people have working IIS 5 and IIS 6 configurations)
+</li>
+<li>
+Tomcat 3.2 and later, Tomcat 4.x, Tomcat 5 and 5.5 and Tomcat 6
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers. There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</subsection>
+
+<subsection name="IIS 5 and 6 Notes">
+<p>
+There are extra steps you need to take for configuring Tomcat with IIS 5 and 6. Please see the appropriate links from
+<a href="http://wiki.apache.org/tomcat/Tomcat/Links">Tomcat Useful Links</a>.
+</p>
+</subsection>
+
+<subsection name="IIS 7 notes">
+<p>
+There is a known bug in IIS that may result in incomplete log messages. See <a
+href="https://issues.apache.org/bugzilla/show_bug.cgi?id=45769">bug 45769</a>
+for further details.
+</p>
+</subsection>
+
+<subsection name="Who support ajp protocols ?">
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</subsection>
+
+<subsection name="How does it work ?">
+<p>
+<ol>
+<li>
+The IIS-Tomcat redirector is an IIS plugin (filter + extension), IIS load the redirector plugin and calls its
+filter function for each in-coming request.
+</li>
+<li>
+The filter then tests the request URL against a list of URI-paths held inside uriworkermap.properties,
+If the current request matches one of the entries in the list of URI-paths,
+the filter transfers the request to the extension.
+</li>
+<li>
+The extension collects the request parameters and forwards them to the appropriate worker using the defined
+protocol like <b>ajp13</b>.
+</li>
+<li>
+The extension collects the response from the worker and returns it to the browser.
+</li>
+</ol>
+</p>
+</subsection>
+
+</section>
+
+<section name="Installation">
+<p>
+A pre-built version of the ISAPI redirector server plugin, isapi_redirect.dll, is available under
+the win32/i386 directory of tomcat-connectors distribution.
+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.
+
+You can also build a copy locally from the source present in tomcat-connectors distribution.
+
+The Tomcat redirector requires three entities:
+
+<ul>
+<li>
+<b>isapi_redirect.dll</b> - The IIS server plugin, either obtain a pre-built DLL or build it yourself (see the build section).
+</li>
+<li>
+<b><a href="../reference/workers.html">workers.properties</a></b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+<li>
+<b><a href="../reference/uriworkermap.html">uriworkermap.properties</a></b> - A file that maps URL-Path patterns to workers.
+A sample uriworkermap.properties can be found under the conf directory as well.
+</li>
+</ul>
+</p>
+
+<p>
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the ISAPI redirector with a default /examples context and checking that you can serve servlets with IIS.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+</p>
+
+</section>
+
+<section name="Configuring the ISAPI Redirector">
+<p>
+In this document I will assume that isapi_redirect.dll is placed in
+<b>c:\tomcat\bin\win32\i386\isapi_redirect.dll</b> and
+that the properties files which you created are in <b>c:\tomcat\conf</b>.
+</p>
+<p>
+<ol>
+<li>
+In the registry, create a new registry key named
+<b>"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0"</b>
+</li>
+<li>
+Add a string value with the name <b>extension_uri</b> and a value of <b>/jakarta/isapi_redirect.dll</b>
+</li>
+<li>
+Add a string value with the name <b>log_file</b> and a value pointing to where you want your
+log file to be (for example <b>c:\tomcat\logs\isapi.log</b>).
+</li>
+<li>
+Add a string value with the name <b>log_level</b> and a value for your log level
+(can be debug, info, error or emerg).
+</li>
+<li>
+Add a string value with the name <b>worker_file</b> and a value which is the full path
+to your workers.properties file (for example <b>c:\tomcat\conf\workers.properties</b>)
+</li>
+<li>
+Add a string value with the name <b>worker_mount_file</b> and a value which is the full path
+to your uriworkermap.properties file (for example <b>c:\tomcat\conf\uriworkermap.properties</b>)
+</li>
+<li>
+Using the IIS management console, add a new virtual directory to your IIS/PWS web site.
+The name of the virtual directory must be jakarta.
+Its physical path should be the directory where you placed isapi_redirect.dll
+(in our example it is c:\tomcat\bin\win32\i386).
+While creating this new virtual directory assign it with execute access.
+</li>
+<li>
+Using the IIS management console, add isapi_redirect.dll as a filter in your IIS/PWS web site.
+The name of the filter should reflect its task (I use the name tomcat),
+its executable must be our c:\tomcat\bin\win32\i386\isapi_redirect.dll.
+For PWS, you'll need to use regedit and add/edit the <b>"Filter DLLs"</b> key under
+<b>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters</b>.
+This key contains a "," separated list of dlls (full paths) -
+you need to insert the full path to isapi_redirect.dll.
+</li>
+<li>
+If you're using IIS 6.0 you must also do the following:
+<br />
+Using the IIS management console, add the Jakarta Isapi Redirector to the Web
+Service Extensions.
+<ol>
+<li>Right-click on Web Service Extensions and choose Add a new Web Service
+Extension.</li>
+<li>Enter tomcat for the Extension Name.</li>
+<li>Add the isapi_redirect.dll to the required files.</li>
+<li>Check the Set extension status to Allowed.</li>
+<li>Click on OK.</li>
+</ol>
+</li>
+<li>
+Restart IIS (stop + start the IIS service), make sure that the tomcat filter is marked with a green up-pointing arrow.
+Under Win98 you may need to <b>cd WINDOWS\SYSTEM\inetsrv</b> and type PWS /stop
+( the DLL and log files are locked - even if you click the stop button,
+PWS will still keep the DLLs in memory. ). Type pws to start it again.
+</li>
+</ol>
+</p>
+<p>
+That's all, you should now start Tomcat and ask IIS to serve you the /examples context.
+Try <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a> for example and
+execute some of the JSP examples.
+</p>
+<p>
+If this does not work successfully, refer to the Troubleshooting section below for help on correcting the problem.
+</p>
+
+<subsection name="Adding additional Contexts">
+<p>
+The examples context is useful for verifying your installation,
+but you will also need to add your own contexts. Adding a new context requires two operations:
+</p>
+<p>
+<ol>
+<li>
+Adding the context to Tomcat (I am not going to talk about this).
+</li>
+<li>
+Adding the context to the ISAPI redirector.
+</li>
+</ol>
+</p>
+<p>
+Adding a context to the ISAPI redirector is simple, all you need to do is to edit
+your uriworkermap.properties and to add a line that looks like:
+</p>
+
+<source>
+ /context/*=worker_name
+</source>
+
+<p>
+Workers and their name are defined in workers.properties, by default workers.properties comes
+with a single pre-configured worker named <b>"defworker"</b> so you can use it.
+As an example, if you want to add a context named "shop", the line that you should add to
+uriworkermap.properties will be:
+</p>
+
+<source>
+ /shop/*=defworker
+</source>
+
+After saving uriworkermap.properties restart IIS and it will serve the new context.
+<p>
+The above should be all you need for IIS to pass through to Tomcat any request for any URI which corresponds
+to a Tomcat context (webapp).
+</p>
+</subsection>
+
+<subsection name="Advanced Context Configuration">
+<p>
+If your webiste is very busy (more than 100 requests/second, or more than 100 simultaneous client connections),
+it might sometimes be desirable to have IIS serve static content (html, gif, jpeg etc.) directly,
+even if these files are part of a context served by Tomcat. Allowing IIS to serve such files directly may
+ avoid the small overhead consisting of passing the request to Tomcat via the redirector, and may free up
+ Tomcat somewhat, by using it only to process requests that only Tomcat can handle (e.g. requests to JSP pages and java servlets).
+</p>
+<p>
+For example, consider the html and gif files in the examples context : you could serve these files directly
+with IIS; there is no need to serve them from the Tomcat process.
+</p>
+<warn>However, you should be very careful when you implement the following configuration style, because by doing so you are
+in fact providing a "back-door" to IIS, and allowing it to serve files out of a Tomcat context without Tomcat's knowledge,
+thus bypassing any security
+restrictions which Tomcat itself and the Tomcat context (webapp) may place on those files.</warn>
+<p>
+Making IIS serve static files that are part of the Tomcat contexts requires the following:
+<ol>
+<li>
+Configuring IIS to know about the Tomcat contexts
+</li>
+<li>
+Configuring the redirector to leave the static files for IIS
+</li>
+</ol>
+</p>
+
+<p>
+Adding a Tomcat context to IIS requires the addition of a new IIS virtual directory that covers the Tomcat context.
+For example adding a /example IIS virtual directory that covers the c:\tomcat\webapps\examples directory.
+</p>
+
+<p>
+Configuring the redirector is somewhat harder, you will need to specify the exact
+URL-Path pattern(s) which you want Tomcat to handle (usually only JSP files and servlets).
+This requires a change to the uriworkermap.properties :
+
+<source>
+ For the examples context it requires to replace the following line
+ /examples/*=defworker
+ with the following two lines
+ /examples/*.jsp=defworker
+ /examples/servlet/*=defworker
+</source>
+</p>
+
+<p>
+As you can see the second configuration is more explicit, it actually instruct the redirector
+to redirect only requests to resources under /examples/servlet/ and resources under /examples/
+whose name ends with .jsp.
+</p>
+
+<p>
+You can even be more explicit and provide lines such as:
+
+<source>
+ /example/servletname=defworker
+</source>
+</p>
+
+<p>
+that instructs the redirector to redirect all requests whose URL-path matches the leading string "/example/servletname"
+to the worker named defworker.
+</p>
+
+</subsection>
+
+<subsection name="Protecting the content of your Tomcat contexts">
+<p>Once again, be aware that by allowing IIS to access the content of your Tomcat context directly, you are
+potentially bypassing Tomcat's protection of that content. You should thus make sure to protect this content
+at the IIS level if needed, by using the corresponding IIS management console functions.
+</p>
+<p>
+In particular, each servlet application (context) has a special directory named WEB-INF,
+which contains sensitive configuration data and Java classes, and which should always be kept hidden from web users.
+Using the IIS management console it is possible to protect the WEB-INF directory from user access, but considering that
+this is a general requirement, and considering that it is easy to forget to implement this protection
+at the IIS level, the redirector plugin does it automatically for you, and it will reject any request
+which contains WEB-INF in its URL-path.
+</p>
+</subsection>
+
+<subsection name="Advanced Worker Configuration">
+<p>
+Sometimes you may want to serve different contexts with different Tomcat processes
+(for example to spread the load among different machines).
+To achieve such a goal you will need to define several workers and assign each context to its own worker.
+</p>
+<p>
+Defining additional workers is done in the workers.properties file. This file includes two types of entries:
+</p>
+
+<p>
+<source>
+ # An entry that lists all the workers defined
+ worker.list=worker1, worker2
+ # Entries that define the host and port associated with each of these workers
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+ worker.worker2.host=otherhost
+ worker.worker2.port=8009
+ worker.worker2.type=ajp13
+</source>
+</p>
+
+<p>
+The above example defined two workers, now we can use these workers to serve two different contexts
+each with its own worker:
+<source>
+ example uriworkermap.properties fragment
+ /examples/*=worker1
+ /webpages/*=worker2
+</source>
+</p>
+
+<p>
+As you can see the <b>examples</b> context is served by <b>worker1</b> while the
+<b>webpages</b> context is served by <b>worker2</b>.
+</p>
+
+<p>
+More information on using and configuring workers in the <a href="../generic_howto/workers.html">Workers HowTo</a>
+and in the <a href="../reference/workers.html">worker.properties configuration reference</a>.
+</p>
+
+</subsection>
+
+</section>
+
+<section name="Building ISAPI redirector">
+<p>
+The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prerequisite if you want
+to perform a custom build. You should also have the IIS developer SDK.
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the isapi plugins source directory.
+</li>
+<li>
+Make the source with MSDEV
+</li>
+</ul>
+<screen>
+<note>Change directory to the isapi plugins source directory</note>
+<typedos>cd c:\home\apache\jk\iis</typedos>
+<note>Build the sources using MSDEV</note>
+<typedos>MSDEV isapi.dsp /MAKE ALL</typedos>
+</screen>
+</p>
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+This will build both release and debug versions of the redirector plugin.
+An alternative will be to open the isapi workspace file (isapi.dsw) in msdev and
+build it using the build menu.
+</p>
+</section>
+
+<section name="Troubleshooting">
+<p>
+It is easy to have the ISAPI redirector not work the first time you try to install it.
+</p>
+<p>
+If this happens to you, here are some steps to follow to try to correct the problem.
+</p>
+<p>
+These steps aren't guaranteed to cover all possible problems,
+but they should help find the typical mistakes.
+</p>
+<p>
+If you make any corrections during these steps, restart the IIS service as described above in the last step
+of the installation, then retry the step.
+</p>
+
+<p>To enable error tracking, make sure web site activity is being logged.
+For PWS 4.0 make sure "Save Web Site Activity Log" is checked in the Advanced Options of the Personal Web Manager.
+</p>
+
+<p>
+Note: These steps assume your <b>worker_mount_file</b> setting points to an unmodified copy of the
+<b>uriworkermap.properties</b> file.<br/>
+Results may be misleading if <b>worker_mount_file</b> points to a modified <b>uriworkermap.properties</b>
+or the <b>uriworkermap.properties-auto</b> file.<br/>
+It is also assumed that the <b>"/examples" context</b> works correctly if you access Tomcat directly.
+</p>
+
+<subsection name="Win98">
+<p>
+Start the IIS service and Tomcat.
+</p>
+<p>
+Check for the presence of the ISAPI redirector log file you specified in the log_file setting.
+If not found, verify the following:
+</p>
+<ul>
+<li>
+Check the "Filter DLLs" setting in the "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters"
+key and make sure the path is correct.
+</li>
+<li>
+Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key.
+Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings.
+</li>
+<li>
+Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists.
+</li>
+If the above are set correctly, the ISAPI redirector should be able to create the log file.
+</ul>
+<p>
+Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a>
+in your browser.
+Case is important in Tomcat. The characters following "localhost" in the URL must be lower case.
+If the page fails to appear, stop the IIS service (required to view the IIS log file).
+Then examine the last line in the IIS log file in found in SYSTEM/LogFiles/W3SVC1 :
+</p>
+<p>
+If the last line contains:
+</p>
+<source>
+ GET "/examples/jsp/index.html HTTP/1.1" 404
+</source>
+<p>
+then the ISAPI redirector is not recognising that it should be handling requests for the "/examples" context.
+Check the following:
+</p>
+<ul>
+<li>
+Check the extension_uri name for typos.
+</li>
+<li>
+Check the worker_file setting for typos, name and data.
+</li>
+<li>
+Check the worker_mount_file setting typos, name and data.
+</li>
+If these are set correctly, the ISAPI redirector should recognise that it should handle requests for the "/examples" context.
+</ul>
+
+<p>If the last line contains something like:
+</p>
+
+<source>
+ GET "/jakarta/isapi_redirect.dll HTTP1.1"
+</source>
+
+<p>
+then the ISAPI redirector is recognising that it should handle the request,
+but is not successful at getting Tomcat to service the request.
+</p>
+
+<p>
+You should check the HTTP error code following GET "/..." :
+</p>
+
+<source>
+ Error 404
+ GET "/..." 404
+</source>
+
+<ul>
+<li>
+Make sure you entered the URL correctly.
+</li>
+<li>
+Make sure the virtual directory created was called "jakarta".
+It should display in Personal Web Manager as "/jakarta" (without the quotes).
+</li>
+<li>
+Make sure the extension_uri data begins with "/jakarta/" (without the quotes).
+</li>
+</ul>
+
+<source>
+ Error 500
+ GET "/..." 500
+</source>
+
+<ul>
+<li>
+Make sure that "isapi_redirect.dll" follows "/jakarta/" in the extension_uri setting.
+</li>
+<li>
+Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support".
+</li>
+</ul>
+
+<source>
+ Error 200 or 403
+ GET "/..." 200
+ GET "/..." 403
+</source>
+
+<ul>
+<li>
+Make sure you have checked Execute Access
+for the jakarta virtual directory in the Advanced Options of the Personal Web Manager.
+</li>
+</ul>
+
+<p>
+If the above settings are correct, the index.html page should appear in your browser.
+You should also be able to click the Execute links to execute the JSP examples.
+</p>
+
+</subsection>
+
+<subsection name="WinNT/Win2K/WinXP">
+<p>
+Start the World Wide Web Publishing Service and Tomcat.
+</p>
+<p>
+Check for the presence of the ISAPI redirector log file you specified in the log_file setting.
+If not found, check the following:
+</p>
+<ul>
+<li>
+Check the "executable" you set for the filter in the IIS Management Console and make sure the path is correct.
+</li>
+<li>Check the spelling of the "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0" key.
+Case isn't important, but an incorrect letter will prevent the isapi_redirect.dll from finding its registry settings.
+</li>
+<li>
+Check the log_file setting for typos, name and data. Also insure the directory in which the log file will appear already exists.
+</li>
+If the above are set correctly, the ISAPI redirector should be able to create the log file.
+</ul>
+
+<p>
+Check the tomcat filter you added and make sure its status shows a green upward-pointing arrow.
+If not, check the following:
+</p>
+<ul>
+<li>
+Check the worker_file setting for typos, name and data.
+</li>
+<li>
+Check the worker_mount_file setting typos, name and data.
+</li>
+If the above are set correctly, the green upward-pointing arrow should appear, even if the other settings are wrong.
+</ul>
+
+<p>
+Invoke the URL <a href="http://localhost/examples/jsp/index.html">http://localhost/examples/jsp/index.html</a>
+in your browser. Case is important in Tomcat. The characters following "localhost" in the URL must be lower case.
+If the page fails to appear, examine the last line in the IIS server log file in found in SYSTEM32/LogFiles/W3SVC1.
+</p>
+
+<p>
+The last line should contain something like: GET "/jakarta/isapi_redirect.dll HTTP1.1",
+which indicates the ISAPI redirector is recognising that it should handle the request.
+</p>
+
+<p>
+You should check the HTTP error code following GET "/..." :
+</p>
+
+<source>
+ Error 404
+ GET "/..." 404
+</source>
+
+<ul>
+<li>
+Make sure you entered the URL correctly.
+</li>
+</ul>
+
+<source>
+ Error 500
+ GET "/..." 500
+</source>
+
+<ul>
+<li>
+Make sure the virtual directory created was called "jakarta".
+</li>
+<li>
+Make sure that the extension_uri setting is correct.
+</li>
+<li>
+Check the workers.properties file and make sure the port setting for worker.ajp12.port is the same as the port specified in the server.xml for the "Apache AJP12 support".
+</li>
+</ul>
+
+<source>
+ Error 200 or 403
+ GET "/..." 200
+ GET "/..." 403
+</source>
+
+<ul>
+<li>
+Make sure you have checked Execute Access for the jakarta virtual directory in the
+Advanced Options of the Personal Web Manager.
+</li>
+</ul>
+
+<p>
+If the above settings are correct, the index.html page should appear in your browser.
+You should also be able to click the Execute links to execute the JSP examples.
+</p>
+</subsection>
+
+
+</section>
+</body>
+</document>
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/nes.xml b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/nes.xml
new file mode 100644
index 00000000..6f86efde
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/nes.xml
@@ -0,0 +1,521 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE document [
+ <!ENTITY project SYSTEM "project.xml">
+]>
+<document url="nes.html">
+
+ &project;
+<copyright>
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+</copyright>
+<properties>
+<title>SunOne -- Netscape/iPlanet HowTo</title>
+<author email="hgomez@apache.org">Henri Gomez</author>
+<author email="jim@apache.org">Jim Jagielski</author>
+<author email="shachor@il.ibm.com">Gal Shachor</author>
+<author email="mturk@apache.org">Mladen Turk</author>
+<date>$Date: 2009-04-07 23:11:25 +0200 (Tue, 07 Apr 2009) $</date>
+</properties>
+<body>
+<section name="Introduction">
+<p>
+This document explains how to set up Sun ONE Web Server previously known as
+Netscape web servers to cooperate with Tomcat.
+</p>
+
+<p>
+Normally the Sun ONE Web Servers come with their own Servlet engine,
+but you can also configure them to send servlet and JSP requests to Tomcat
+using the NSAPI redirector plugin.
+</p>
+
+<p>
+It is recommended that you also read the <a href="../generic_howto/workers.html">Workers HowTo</a> document
+to learn how to setup the working entities between your web server and Tomcat Engines.
+</p>
+
+
+<subsection name="Document Conventions and Assumptions">
+<p>
+${tomcat_home} is the root directory of tomcat.
+Your Tomcat installation should have the following subdirectories:
+
+<ul>
+<li>
+${tomcat_home}\conf - Where you can place various configuration files
+</li>
+<li>
+${tomcat_home}\webapps - Containing example applications
+</li>
+<li>
+${tomcat_home}\bin - Where you place web server plugins
+</li>
+</ul>
+</p>
+<p>
+In all the examples in this document ${tomcat_home} will be <b>c:\tomcat</b>.
+A worker is defined to be a tomcat process that accepts work from the Sun ONE Web Server.
+</p>
+</subsection>
+
+
+<subsection name="Supported Configuration">
+<p>
+The NSAPI-Tomcat redirector was developed and tested on:
+<ul>
+<li>
+WINNT 2000/XP/2003 (should be able to work with other service packs) and some Unixes
+</li>
+<li>
+Sun ONE Web Server 6.1
+</li>
+<li>
+Tomcat 4.1.x , Tomcat 5.0.x and Tomcat 5.5.x
+</li>
+</ul>
+</p>
+
+<p>
+The redirector uses <b>ajp12</b> and <b>ajp13</b> to send requests to the Tomcat containers.
+There is also an option to use Tomcat in process,
+more about the in-process mode can be found in the in process howto.
+</p>
+</subsection>
+
+<subsection name="Who support ajp protocols ?">
+<p>
+The ajp12 protocol is only available in Tomcat 3.2.x and 3.3.x.
+</p>
+
+<p>
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
+<b>ajp13</b> which is the only ajp protocol known by Tomcat 4.0.x, 4.1.x, 5.0.x, 5.5.x and 6.
+</p>
+
+<p>
+Of course Tomcat 3.2.x and 3.3.x also support ajp13 protocol.
+</p>
+
+<p>
+Others servlet engines such as <b>jetty</b> have support for ajp13 protocol
+</p>
+
+</subsection>
+
+
+<subsection name="How does it work ?">
+<p>
+<ol>
+<li>
+The NSAPI-Tomcat redirector is an Netscape service step plugin,
+Netscape load the redirector plugin and calls its service handler
+function for request that are assigned to the "servlet" configuration object.
+</li>
+<li>
+For each in-coming request Netscape will execute the set of NameTrans directives
+that we added to obj.conf, the assign-name function will check if it's from
+parameter matches the request URL.
+</li>
+<li>
+If a match is found, assign-name will assign the servlet object name to the request.
+This will cause Netscape to send the request to the servlet configuration object.
+</li>
+<li>
+Netscape will execute our jk_service extension. The extension collects the
+request parameters and forwards them to the appropriate worker using the ajp13 protocol
+(the worker="defworker" parameter in jk_service inform it that the worker for this request is named <b>defworker</b>).
+the workers properties files, <b>workers.properties</b>, will indicate that defworker use ajp13 protocol.
+</li>
+<li>
+The extension collects the response from the worker and returns it to the browser.
+</li>
+</ol>
+</p>
+</subsection>
+
+</section>
+
+<section name="Installation">
+<p>
+A pre-built version of the NSAPI redirector, nsapi_redirect.dll, may be available under
+the win32/i386 directory of tomcat-connectors distribution.
+For those using Netscape as your browser, try downloading a zip version of the file, if available.
+
+You can also build a copy locally from the source present in tomcat-connectors distribution.
+
+
+The Tomcat redirector requires two entities:
+<ul>
+<li>
+nsapi_redirect.dll (Windows) -or- nsapi_redirector.so (Unix) - The NSAPI server plugin, either obtain a pre-built DLL/so or build it yourself
+(see the build section).
+</li>
+<li>
+workers.properties - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
+A sample workers.properties can be found under the conf directory.
+</li>
+</ul>
+
+The installation includes the following parts:
+
+<ul>
+<li>
+Configuring the NSAPI redirector with a default /examples context and checking that you can serve servlets
+with Netscape.
+</li>
+<li>
+Adding more contexts to the configuration.
+</li>
+</ul>
+
+</p>
+</section>
+
+<section name="Configuring the NSAPI Redirector">
+<p>
+In this document we'll assume that nsapi_redirect.dll is placed in
+<b>c:\jk\lib\nsapi_redirect.dll</b>, the properties file is in<b>c:\jk\conf</b>
+and you created a log directory <b>c:\jk\logs</b>
+</p>
+
+<ul>
+<li>
+If the built in servlet support is working disable it.
+</li>
+<li>
+Add the redirector plugin into the Netscape server configuration.
+Edit your server <b>magnus.conf</b> and add the following lines:
+</li>
+</ul>
+
+<source>
+
+ Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)"
+ Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm"
+</source>
+<ul>
+<li>
+Edit your server <b>obj.conf</b> and add the following lines:
+</li>
+</ul>
+<source>
+
+
+ In the default object NameTrans section
+ &lt;Object name="default"&gt;
+
+ NameTrans fn="assign-name" from="/servlets-examples(|/*)" name="jknsapi"
+ NameTrans fn="assign-name" from="/jsp-examples(|/*)" name="jknsapi"
+ ....
+ &lt;/Object&gt;
+
+ Create a new configuration object by adding the following lines to the end of the obj.conf file
+
+ &lt;Object name="jknsapi"&gt;
+ ObjectType fn=force-type type=text/plain
+ Service fn="jk_service" method="*" worker="worker1"
+ &lt;/Object&gt;
+</source>
+
+<ul>
+<li>
+Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size:
+</li>
+</ul>
+
+<source>
+ #An entry that lists all the workers defined. For example:
+ worker.list=worker1
+
+ # Entries that define the host and port associated with these workers.
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+ worker.worker1.connection_pool_size=50
+</source>
+
+<ul>
+<li>
+Restart Web Server (stop and start the server)
+</li>
+</ul>
+
+<p>
+That's all, now you should start tomcat and ask for http://server:port/servlets-examples/
+</p>
+<warn>
+The file <b>obj.conf</b> seems to be sensitive to leading white space in lines, especially in
+the <b>Object</b> element. Make sure you have no leading white space (no indentation)
+on any line of this file.
+</warn>
+
+<subsection name="Adding additional Contexts">
+<p>
+The examples context is useful for verifying your installation, but you will also need to add your own contexts.
+Adding a new context requires two operations:
+</p>
+<ul>
+<li>
+Adding the context to Tomcat (I am not going to talk about this).
+</li>
+<li>
+Assigning the NSAPI redirector to handle this context.
+</li>
+</ul>
+
+<p>
+Assigning the NSAPI redirector to handle this context is simple,
+all you need to do is to edit <b>obj.conf</b> and add a NameTrans line that looks like:
+</p>
+
+<source>
+ NameTrans fn="assign-name" from="/&lt;context name&gt;/*" name="jknsapi"
+</source>
+
+<p>
+After saving <b>obj.conf</b> restart Netscape and it will serve the new context.
+</p>
+</subsection>
+
+<subsection name="Advanced Context Configuration">
+<p>
+Sometimes it is better to have Netscape serve the static pages (html, gif, jpeg etc.)
+even if these files are part of a context served by Tomcat. For example, consider the html and gif files in the examples context, there is no need to serve them from the Tomcat process, Netscape will suffice.
+</p>
+<p>
+Making Netscape serve static files that are part of the Tomcat contexts requires the following:
+</p>
+<ul>
+<li>
+Configuring Netscape to know about the Tomcat contexts
+</li>
+<li>
+Make sure that the WEB-INF directory is protected from access.
+</li>
+<li>
+Configuring Netscape to assign the NSAPI redirector only specific requests that requires JSP/Servlet handling.
+</li>
+</ul>
+
+<p>
+Adding a Tomcat context to Netscape requires the addition of a new Netscape virtual directory
+that covers the Tomcat context.
+</p>
+
+<p>
+For example, adding a /example Netscape virtual directory that
+covers the <b>c:\tomcat\webapps\examples</b> directory.
+</p>
+
+<p>
+To add a new virtual directory add the following line to your <b>obj.conf</b>:
+</p>
+
+<source>
+ NameTrans fn=pfx2dir from=/examples dir="c:/tomcat/webapps/examples"
+</source>
+
+<p>
+WEB-INF protection requires some explanation; Each servlet application (context) has a special directory named <b>WEB-INF</b>,
+this directory contains sensitive configurations data and Java classes and must be kept hidden from web users.
+WEB-INF can be protected by adding the following line to the PathCheck section in the default configuration object:
+</p>
+
+<source>
+ PathCheck fn="deny-existence" path="*/WEB-INF/*"
+
+ This line instructs the Netscape server to reject any request with a URL that contain the path /WEB-INF/.
+</source>
+
+<p>
+Configuring Netscape to assign the NSAPI redirector only specific requests is somewhat harder,
+you will need to specify the exact URL-Path pattern(s) that you want Tomcat to handle
+(usually only JSP files and servlets).
+</p>
+
+<p>
+This requires a change to NameTrans portion of <b>obj.conf</b>.
+</p>
+
+<source>
+ For the examples context it requires to replace the following line:
+
+ NameTrans fn="assign-name" from="/examples/*" name="jknsapi"
+
+ with the following two lines:
+
+ NameTrans fn="assign-name" from="/examples/jsp/*.jsp" name="jknsapi"
+ NameTrans fn="assign-name" from="/examples/servlet/*" name="jknsapi"
+</source>
+
+<p>
+As you can see the second configuration is more explicit, it actually instructs
+Netscape to assign the redirector with only requests to resources under
+<b>/examples/servlet/</b> and resources under <b>/examples/</b> whose name ends with <b>.jsp</b>.
+</p>
+
+<p>
+You can be even more explicit and provide lines such as:
+</p>
+
+<source>
+ NameTrans fn="assign-name" from="/examples/servletname" name="jknsapi"
+
+ Instructs Netscape to assign the redirector request whose URL-Path equals /example/servletname
+</source>
+
+</subsection>
+
+<subsection name="Advanced Worker Configuration">
+<p>
+Sometimes you want to serve different contexts with different Tomcat processes
+(for example to spread the load among different machines).
+To achieve such goal you will need to define several workers and assign each context with its own worker.
+</p>
+
+<p>
+Defining workers is done in <b>workers.properties</b>, this file includes two types of entries:
+</p>
+
+<source>
+ #An entry that lists all the workers defined. For example:
+ worker.list=worker1,worker2
+
+ # Entries that define the host and port associated with these workers.
+ worker.worker1.host=localhost
+ worker.worker1.port=8009
+ worker.worker1.type=ajp13
+
+ worker.worker2.host=otherhost
+ worker.worker2.port=8009
+ worker.worker2.type=ajp13
+</source>
+
+<p>
+The above examples defined two workers, now we can use these workers to serve two different
+contexts each with it's own worker.
+Submitting requests to different workers is accomplished by using multiple Service directives
+in the servlet configuration Object, each with a different path pattern parameter.
+</p>
+
+<p>
+For example, if we want to submit the <b>/examples</b> context to the worker named <b>worker1</b> and the
+<b>/webpages</b> context to the worker named <b>worker2</b> we should use the following configuration:
+</p>
+
+<source>
+ &lt;Object name="jknsapi"&gt;
+ ObjectType fn=force-type type=text/plain
+ Service fn="jk_service" worker="worker1" path="/examples/*"
+ Service fn="jk_service" worker="worker2" path="/webpages/*"
+ Service fn="jk_service" worker="worker1"
+ &lt;/Object&gt;
+</source>
+
+<p>
+More informations on using and configuring workers in the <a href="../generic_howto/workers.html">Workers HowTo</a>
+and in the <a href="../reference/workers.html">worker.properties configuration reference</a>.
+
+</p>
+</subsection>
+
+</section>
+
+<section name="Building NSAPI DLL redirector for Windows">
+<p>
+The redirector was developed using Visual C++ Ver.6.0, so having this environment is a prereq if you want
+to perform a custom build. You should also have NES developer SDK
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the nsapi plugins source directory.
+</li>
+<li>
+Edit <b>nsapi.dsp</b> and update the include and library path to reflect your own Netscape server installation
+(search for a <b>/I compiler</b> option and <b>/libpath</b> linker option)
+</li>
+<li>
+Make the source with MSDEV
+</li>
+</ul>
+<screendos>
+<notedos>Change directory to the nsapi plugins source directory</notedos>
+<typedos>cd c:\home\apache\jk\nsapi</typedos>
+<notedos>Build the sources using MSDEV</notedos>
+<typedos>MSDEV nsapi.dsp /MAKE ALL</typedos>
+</screendos>
+</p>
+<p>
+If msdev is not in your path, enter the full path to msdev.exe.
+This will build both release and debug versions of the redirector plugin.
+An alternative will be to open the nsapi workspace file (nsapi.dsw) in msdev and
+build it using the build menu.
+</p>
+</section>
+<section name="Building NSAPI so plugin redirector for Unix">
+<p>
+The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris).
+
+The steps that you need to take are:
+<ul>
+<li>
+Change directory to the nsapi plugins source directory (src/native).
+</li>
+<li>
+configure for Netscape/iPlanet/SunONE webserver.
+</li>
+<li>
+Change directory to the nsapi netscape directory (./netstape).
+</li>
+<li>
+Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation
+resp. Netscape server installation. Depending on the web server version, you must add the subdirectory
+&quot;plugins&quot; to SUITSPOT_HOME.
+The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists.
+</li>
+<li>
+Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs.
+In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc
+instead of GNU gcc.
+</li>
+<li>
+Make the source with gmake.
+</li>
+</ul>
+<screendos>
+<notedos>Change directory to the nsapi plugins source directory</notedos>
+<typedos>cd /usr/local/src/tomcat-connectors-xxx-src/native</typedos>
+<notedos>configure for Netscape/iPlanet/SunONE webserver</notedos>
+<typedos>./configure --enable-netscape</typedos>
+<notedos>Change directory to the nsapi netscape directory</notedos>
+<typedos>cd netscape</typedos>
+<notedos>Set JAVA_HOME (ksh example)</notedos>
+<typedos>export JAVA_HOME=/path/to/my/java</typedos>
+<notedos>Set SUITSPOT_HOME (ksh example)</notedos>
+<typedos>export SUITSPOT_HOME=/path/to/my/netscape/server</typedos>
+<notedos>Edit the Makefile</notedos>
+<typedos>vi Makefile.solaris</typedos>
+<notedos>Make the source with gmake</notedos>
+<typedos>gmake -f Makefile.solaris</typedos>
+</screendos>
+</p>
+<p>
+After the build, you will have the required nsapi_redirector.so plugin.
+</p>
+</section>
+</body>
+</document>
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/project.xml b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/project.xml
new file mode 100644
index 00000000..16ebf7e3
--- /dev/null
+++ b/rubbos/app/tomcat-connectors-1.2.32-src/xdocs/webserver_howto/project.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project name="Apache Tomcat Connector Documentation - Webserver HowTo"
+ href="http://tomcat.apache.org/">
+
+ <title>The Apache Tomcat Connector - Webserver HowTo</title>
+
+ <logo href="/images/tomcat.gif">
+ The Apache Tomcat Connector - Webserver HowTo
+ </logo>
+<body>
+
+ <menu name="Links">
+ <item name="Docs Home" href="../index.html"/>
+ </menu>
+
+ <menu name="Reference Guide">
+ <item name="workers.properties" href="../reference/workers.html"/>
+ <item name="uriworkermap.properties" href="../reference/uriworkermap.html"/>
+ <item name="Status Worker" href="../reference/status.html"/>
+ <item name="Apache HTTP Server" href="../reference/apache.html"/>
+ <item name="IIS" href="../reference/iis.html"/>
+ </menu>
+
+ <menu name="Generic HowTo">
+ <item name="For the impatient" href="../generic_howto/quick.html"/>
+ <item name="All about workers" href="../generic_howto/workers.html"/>
+ <item name="Timeouts" href="../generic_howto/timeouts.html"/>
+ <item name="Load Balancing" href="../generic_howto/loadbalancers.html"/>
+ <item name="Reverse Proxy" href="../generic_howto/proxy.html"/>
+ </menu>
+
+ <menu name="Webserver HowTo">
+ <item name="Apache HTTP Server" href="../webserver_howto/apache.html"/>
+ <item name="IIS" href="../webserver_howto/iis.html"/>
+ <item name="Netscape/SunOne/Sun" href="../webserver_howto/nes.html"/>
+ </menu>
+
+ <menu name="AJP Protocol Reference">
+ <item name="AJPv13" href="../ajp/ajpv13a.html"/>
+ <item name="AJPv13 Extension Proposal" href="../ajp/ajpv13ext.html"/>
+ </menu>
+
+ <menu name="Miscellaneous Documentation">
+ <item name="Frequently asked questions" href="../miscellaneous/faq.html"/>
+ <item name="Changelog" href="../miscellaneous/changelog.html"/>
+ <item name="Current Tomcat Connectors bugs" href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Tomcat+Connectors&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0="/>
+ <item name="Contribute documentation" href="../miscellaneous/doccontrib.html"/>
+ <item name="JK Status Ant Tasks" href="../miscellaneous/jkstatustasks.html"/>
+ <item name="Reporting Tools" href="../miscellaneous/reporttools.html"/>
+ <item name="Old JK/JK2 documentation" href="http://tomcat.apache.org/connectors-doc-archive/jk2/index.html"/>
+ </menu>
+
+ <menu name="News">
+ <item name="2011" href="../news/20110701.html"/>
+ <item name="2010" href="../news/20100101.html"/>
+ <item name="2009" href="../news/20090301.html"/>
+ <item name="2008" href="../news/20081001.html"/>
+ <item name="2007" href="../news/20070301.html"/>
+ <item name="2006" href="../news/20060101.html"/>
+ <item name="2005" href="../news/20050101.html"/>
+ <item name="2004" href="../news/20041100.html"/>
+ </menu>
+
+</body>
+</project>