<?xml version="1.0"?>
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="ajp.html">

  &project;

  <properties>
    <author email="remm@apache.org">Remy Maucherat</author>
    <title>The AJP Connector</title>
  </properties>

<body>


<section name="Introduction">

  <p>The <strong>AJP Connector</strong> element represents a
  <strong>Connector</strong> component that communicates with a web
  connector via the <code>AJP</code> protocol.  This is used for cases
  where you wish to invisibly integrate Tomcat 5 into an existing (or new)
  Apache installation, and you want Apache to handle the static content
  contained in the web application, and/or utilize Apache's SSL
  processing.</p>

  <p>This connector supports load balancing when used in conjunction with
  the <code>jvmRoute</code> attribute of the 
  <a href="engine.html">Engine</a>.</p>

</section>


<section name="Attributes">

  <subsection name="Common Attributes">

  <p>All implementations of <strong>Connector</strong>
  support the following attributes:</p>

  <attributes>

    <attribute name="allowTrace" required="false">
      <p>A boolean value which can be used to enable or disable the TRACE
      HTTP method. If not specified, this attribute is set to false.</p>
    </attribute>

    <attribute name="enableLookups" required="false">
      <p>Set to <code>true</code> if you want calls to
      <code>request.getRemoteHost()</code> to perform DNS lookups in
      order to return the actual host name of the remote client.  Set
      to <code>false</code> to skip the DNS lookup and return the IP
      address in String form instead (thereby improving performance).
      By default, DNS lookups are enabled.</p>
    </attribute>

    <attribute name="maxPostSize" required="false">
      <p>The maximum size in bytes of the POST which will be handled by 
      the container FORM URL parameter parsing. The feature can be disbled by 
      setting this attribute to a value inferior or equal to 0. 
      If not specified, this attribute is set to 2097152 (2 megabytes).</p>
    </attribute>

    <attribute name="redirectPort" required="false">
      <p>If this <strong>Connector</strong> is supporting non-SSL
      requests, and a request is received for which a matching
      <code>&lt;security-constraint&gt;</code> requires SSL transport,
      Catalina will automatically redirect the request to the port
      number specified here.</p>
    </attribute>

    <attribute name="scheme" required="false">
      <p>Set this attribute to the name of the protocol you wish to have
      returned by calls to <code>request.getScheme()</code>.  For
      example, you would set this attribute to "<code>https</code>"
      for an SSL Connector.  The default value is "<code>http</code>".</p>
    </attribute>

    <attribute name="secure" required="false">
      <p>Set this attribute to <code>true</code> if you wish to have
      calls to <code>request.isSecure()</code> to return <code>true</code>
      for requests received by this Connector (you would want this on an
      SSL Connector).  The default value is <code>false</code>.</p>
    </attribute>

    <attribute name="URIEncoding" required="false">
      <p>This specifies the character encoding used to decode the URI bytes,
      after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
      </p>
    </attribute>

    <attribute name="useBodyEncodingForURI" required="false">
      <p>This specifies if the encoding specified in contentType should be used
      for URI query parameters, instead of using the URIEncoding. This 
      setting is present for compatibility with Tomcat 4.1.x, where the 
      encoding specified in the contentType, or explicitely set using 
      Request.setCharacterEncoding method was also used for the parameters from
      the URL. The default value is <code>false</code>.
      </p>
    </attribute>

  </attributes>

  </subsection>

  <subsection name="Standard Implementation">

  <p>The standard implementation of <strong>AJP Connector</strong> is
  <strong>org.apache.coyote.tomcat5.CoyoteConnector</strong>, but you
  must specify the protocol attribute (see below).</p>

  <p><strong>This implementation supports the AJP 1.3 protocol.</strong></p>

  <p>It supports the following additional attributes (in addition to the
  common attributes listed above):</p>

  <attributes>

    <attribute name="debug" required="false">
      <p>The debugging detail level of log messages generated by this
      component, with higher numbers creating more detailed output.
      If not specified, this attribute is set to zero (0).</p>
    </attribute>

    <attribute name="protocol" required="true">
      <p>This attribute value must be <code>AJP/1.3</code> to use the AJP
      handler.</p>
    </attribute>

  </attributes>

  </subsection>

</section>


<section name="Nested Components">

  <p></p>

</section>


<section name="Configuration HOWTOs">

  <p>Please refer to the <a href="http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/doc/">JK documentation</a> 
     for HOWTOs and complete configuration information.</p>

</section>


</body>

</document>
