Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 771 | blopes | 1 | <!DOCTYPE html SYSTEM "about:legacy-compat"> |
| 2 | <html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link href="../images/docs-stylesheet.css" rel="stylesheet" type="text/css"><title>Apache Tomcat 9 Configuration Reference (9.0.112) - System Properties</title></head><body><div id="wrapper"><header><div id="header"><div><div><div class="logo noPrint"><a href="https://tomcat.apache.org/"><img alt="Tomcat Home" src="../images/tomcat.png"></a></div><div style="height: 1px;"></div><div class="asfLogo noPrint"><a href="https://www.apache.org/" target="_blank"><img src="../images/asf-logo.svg" alt="The Apache Software Foundation" style="width: 266px; height: 83px;"></a></div><h1>Apache Tomcat 9 Configuration Reference</h1><div class="versionInfo"> |
||
| 3 | Version 9.0.112, |
||
| 4 | <time datetime="2025-11-06">Nov 6 2025</time></div><div style="height: 1px;"></div><div style="clear: left;"></div></div></div></div></header><div id="middle"><div><div id="mainLeft" class="noprint"><div><nav><div><h2>Links</h2><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li><li><a href="https://cwiki.apache.org/confluence/display/TOMCAT/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul></div><div><h2>Top Level Elements</h2><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul></div><div><h2>Executors</h2><ul><li><a href="executor.html">Executor</a></li></ul></div><div><h2>Connectors</h2><ul><li><a href="http.html">HTTP/1.1</a></li><li><a href="http2.html">HTTP/2</a></li><li><a href="ajp.html">AJP</a></li></ul></div><div><h2>Containers</h2><ul><li><a href="context.html">Context</a></li><li><a href="engine.html">Engine</a></li><li><a href="host.html">Host</a></li><li><a href="cluster.html">Cluster</a></li></ul></div><div><h2>Nested Components</h2><ul><li><a href="cookie-processor.html">CookieProcessor</a></li><li><a href="credentialhandler.html">CredentialHandler</a></li><li><a href="globalresources.html">Global Resources</a></li><li><a href="jar-scanner.html">JarScanner</a></li><li><a href="jar-scan-filter.html">JarScanFilter</a></li><li><a href="listeners.html">Listeners</a></li><li><a href="loader.html">Loader</a></li><li><a href="manager.html">Manager</a></li><li><a href="realm.html">Realm</a></li><li><a href="resources.html">Resources</a></li><li><a href="sessionidgenerator.html">SessionIdGenerator</a></li><li><a href="valve.html">Valve</a></li></ul></div><div><h2>Cluster Elements</h2><ul><li><a href="cluster.html">Cluster</a></li><li><a href="cluster-manager.html">Manager</a></li><li><a href="cluster-channel.html">Channel</a></li><li><a href="cluster-membership.html">Channel/Membership</a></li><li><a href="cluster-sender.html">Channel/Sender</a></li><li><a href="cluster-receiver.html">Channel/Receiver</a></li><li><a href="cluster-interceptor.html">Channel/Interceptor</a></li><li><a href="cluster-valve.html">Valve</a></li><li><a href="cluster-deployer.html">Deployer</a></li><li><a href="cluster-listener.html">ClusterListener</a></li></ul></div><div><h2>web.xml</h2><ul><li><a href="filter.html">Filter</a></li></ul></div><div><h2>Other</h2><ul><li><a href="runtime-attributes.html">Runtime attributes</a></li><li><a href="systemprops.html">System properties</a></li><li><a href="jaspic.html">JASPIC</a></li></ul></div></nav></div></div><div id="mainRight"><div id="content"><h2>System Properties</h2><h3 id="Table_of_Contents">Table of Contents</h3><div class="text"> |
||
| 5 | <ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Property_replacements">Property replacements</a></li><li><a href="#Clustering">Clustering</a></li><li><a href="#Expression_Language">Expression Language</a></li><li><a href="#Jasper">Jasper</a></li><li><a href="#Security">Security</a></li><li><a href="#Specifications">Specifications</a></li><li><a href="#Sessions">Sessions</a></li><li><a href="#Logging">Logging</a></li><li><a href="#JAR_Scanning">JAR Scanning</a></li><li><a href="#Websockets">Websockets</a></li><li><a href="#Other">Other</a></li></ul> |
||
| 6 | </div><h3 id="Introduction">Introduction</h3><div class="text"> |
||
| 7 | <p>The following sections list the system properties that may be set to modify |
||
| 8 | the default Tomcat behaviour.</p> |
||
| 9 | </div><h3 id="Property_replacements">Property replacements</h3><div class="text"> |
||
| 10 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 11 | Property |
||
| 12 | </th><th style="width: 85%;"> |
||
| 13 | Description |
||
| 14 | </th></tr><tr><td><code class="propertyName">org.apache.tomcat.util.digester. PROPERTY_SOURCE</code></td><td> |
||
| 15 | <p>Set this to a comma separated list of fully qualified name of classes |
||
| 16 | that implement |
||
| 17 | <code>org.apache.tomcat.util.IntrospectionUtils.PropertySource</code>. |
||
| 18 | Required to have a public constructor with no arguments.</p> |
||
| 19 | <p>Use this to add a property source, that will be invoked when |
||
| 20 | <code>${parameter:-default-value}</code> denoted parameters (with |
||
| 21 | optional default values) are found in the XML files that Tomcat |
||
| 22 | parses.</p> |
||
| 23 | <p>Property replacement from the specified property source on the JVM |
||
| 24 | system properties can also be done using the |
||
| 25 | <code>REPLACE_SYSTEM_PROPERTIES</code> system property.</p> |
||
| 26 | <p><code>org.apache.tomcat.util.digester.ServiceBindingPropertySource</code> |
||
| 27 | can be used to replace parameters from any Kubernetes service bindings |
||
| 28 | that follows the <a href="https://servicebinding.io/">servicebinding.io</a> spec</p> |
||
| 29 | <p><code>org.apache.tomcat.util.digester.EnvironmentPropertySource</code> |
||
| 30 | can be used to replace parameters from the process' environment |
||
| 31 | variables, e.g. injected ConfigMaps or Secret objects in container |
||
| 32 | based systems like OpenShift or Kubernetes.</p> |
||
| 33 | <p><code>org.apache.tomcat.util.digester.SystemPropertySource</code> |
||
| 34 | does replacement with system properties. It is always enabled, |
||
| 35 | but can also be specified as part of the property value.</p> |
||
| 36 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.util.digester. REPLACE_SYSTEM_PROPERTIES</code></td><td> |
||
| 37 | <p>Set this boolean system property to <code>true</code> to cause |
||
| 38 | property replacement from the digester property source on the JVM |
||
| 39 | system properties.</p> |
||
| 40 | </td></tr></table> |
||
| 41 | |||
| 42 | </div><h3 id="Clustering">Clustering</h3><div class="text"> |
||
| 43 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 44 | Property |
||
| 45 | </th><th style="width: 85%;"> |
||
| 46 | Description |
||
| 47 | </th></tr><tr><td><code class="propertyName">org.apache.catalina. tribes.dns_lookups</code></td><td> |
||
| 48 | <p>This system property is deprecated and will be removed without |
||
| 49 | replacement in Apache Tomcat 10 onwards.</p> |
||
| 50 | <p>If <code>true</code>, the clustering module will attempt to use DNS to |
||
| 51 | resolve any host names provided in the cluster configuration.</p> |
||
| 52 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 53 | </td></tr></table> |
||
| 54 | |||
| 55 | </div><h3 id="Expression_Language">Expression Language</h3><div class="text"> |
||
| 56 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 57 | Property |
||
| 58 | </th><th style="width: 85%;"> |
||
| 59 | Description |
||
| 60 | </th></tr><tr><td><code class="propertyName">org.apache.el. GET_CLASSLOADER_USE_PRIVILEGED</code></td><td> |
||
| 61 | <p>Controls whether the EL API classes make use of a privileged block to |
||
| 62 | obtain the thread context class loader. When using the EL API within |
||
| 63 | Apache Tomcat this does not need to be set as all calls are already |
||
| 64 | wrapped in a privileged block further up the stack. It may be required if |
||
| 65 | using the EL API under a SecurityManager outside of Apache Tomcat.</p> |
||
| 66 | <p>If not specified, the default of <code>false</code> will be used.</p> |
||
| 67 | </td></tr><tr><td><code class="propertyName">org.apache.el.BeanELResolver. CACHE_SIZE</code></td><td> |
||
| 68 | <p>The number of javax.el.BeanELResolver.BeanProperties objects that will |
||
| 69 | be cached by the EL Parser.</p> |
||
| 70 | <p>If not specified, the default of <code>1000</code> will be used.</p> |
||
| 71 | </td></tr><tr><td><code class="propertyName">org.apache.el.ExpressionBuilder. CACHE_SIZE</code></td><td> |
||
| 72 | <p>The number of parsed EL expressions that will be cached by the EL |
||
| 73 | Parser.</p> |
||
| 74 | <p>If not specified, the default of <code>5000</code> will be used.</p> |
||
| 75 | </td></tr><tr><td><code class="propertyName">org.apache.el.parser. COERCE_TO_ZERO</code></td><td> |
||
| 76 | <p>If <code>true</code>, when coercing <code>null</code>s to objects of |
||
| 77 | type Number, Character or Boolean the result will be <code>0</code> for |
||
| 78 | Number and Character types and <code>false</code> for Boolean as required |
||
| 79 | by the EL 2.2 and earlier specifications. If this property is |
||
| 80 | <code>false</code> the result of the coercion will be <code>null</code> as |
||
| 81 | required by the EL 3.0 specification.</p> |
||
| 82 | <p>If not specified, the default value of <code>false</code> will be |
||
| 83 | used.</p> |
||
| 84 | </td></tr><tr><td><code class="propertyName">org.apache.el.parser. SKIP_IDENTIFIER_CHECK</code></td><td> |
||
| 85 | <p>If <code>true</code>, when parsing expressions, identifiers will not be |
||
| 86 | checked to ensure that they conform to the Java Language Specification for |
||
| 87 | Java identifiers.</p> |
||
| 88 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 89 | </td></tr></table> |
||
| 90 | </div><h3 id="Jasper">Jasper</h3><div class="text"> |
||
| 91 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 92 | Property |
||
| 93 | </th><th style="width: 85%;"> |
||
| 94 | Description |
||
| 95 | </th></tr><tr><td><code class="propertyName">org.apache.jasper.compiler. Generator.POOL_TAGS_WITH_EXTENDS</code></td><td> |
||
| 96 | <p>By default, JSPs that use their own base class via the extends |
||
| 97 | attribute of the page directive, will have Tag pooling disabled since |
||
| 98 | Jasper cannot guarantee that the necessary initialisation will have taken |
||
| 99 | place. This can have a negative impact on performance. Providing the |
||
| 100 | alternative base class calls _jspInit() from Servlet.init(), setting this |
||
| 101 | property to <code>true</code> will enable pooling with an alternative base |
||
| 102 | class. If the alternative base class does not call _jspInit() and this |
||
| 103 | property is <code>true</code>, NPEs will occur when attempting to use |
||
| 104 | tags.</p> |
||
| 105 | <p>If not specified, the default value of <code>false</code> will be used. |
||
| 106 | </p> |
||
| 107 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.compiler. Generator.STRICT_GET_PROPERTY</code></td><td> |
||
| 108 | <p>If <code>true</code>, the requirement to have the object referenced in |
||
| 109 | <code>jsp:getProperty</code> action to be previously "introduced" |
||
| 110 | to the JSP processor, as specified in the chapter JSP.5.3 of JSP 2.0 and |
||
| 111 | later specifications, is enforced.</p> |
||
| 112 | <p>If not specified, the specification compliant default of |
||
| 113 | <code>true</code> will be used.</p> |
||
| 114 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.compiler. Generator.VAR_EXPRESSIONFACTORY</code></td><td> |
||
| 115 | <p>The name of the variable to use for the expression language expression |
||
| 116 | factory.</p> |
||
| 117 | <p>If not specified, the default value of <code>_el_expressionfactory</code> |
||
| 118 | will be used.</p> |
||
| 119 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.compiler. Generator.VAR_INSTANCEMANAGER</code></td><td> |
||
| 120 | <p>The name of the variable to use for the instance manager factory.</p> |
||
| 121 | <p>If not specified, the default value of <code>_jsp_instancemanager</code> |
||
| 122 | will be used.</p> |
||
| 123 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.compiler. Parser.STRICT_WHITESPACE</code></td><td> |
||
| 124 | <p>If <code>false</code> the requirements for whitespace before an |
||
| 125 | attribute name will be relaxed so that the lack of whitespace will not |
||
| 126 | cause an error.</p> |
||
| 127 | <p>If not specified, the specification compliant default of |
||
| 128 | <code>true</code> will be used.</p> |
||
| 129 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.runtime. BodyContentImpl.BUFFER_SIZE</code></td><td> |
||
| 130 | <p>The size (in characters) to use when creating a tag buffer.</p> |
||
| 131 | <p>If not specified, the default value of |
||
| 132 | <code>org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE</code> (512) |
||
| 133 | will be used.</p> |
||
| 134 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER</code></td><td> |
||
| 135 | <p>If <code>true</code>, any tag buffer that expands beyond |
||
| 136 | <code>org.apache.jasper.runtime.BodyContentImpl.BUFFER_SIZE</code> will be |
||
| 137 | destroyed and a new buffer created.</p> |
||
| 138 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 139 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.runtime. JspFactoryImpl.USE_POOL</code></td><td> |
||
| 140 | <p>If <code>true</code>, a ThreadLocal <code>PageContext</code> pool will |
||
| 141 | be used.</p> |
||
| 142 | <p>If not specified, the default value of <code>true</code> will be used.</p> |
||
| 143 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.runtime. JspFactoryImpl.POOL_SIZE</code></td><td> |
||
| 144 | <p>The size of the ThreadLocal <code>PageContext</code>.</p> |
||
| 145 | <p>If not specified, the default value of <code>8</code> will be used.</p> |
||
| 146 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. JSP_SERVLET_BASE</code></td><td> |
||
| 147 | <p>The base class of the Servlets generated from the JSPs.</p> |
||
| 148 | <p>If not specified, the default value of |
||
| 149 | <code>org.apache.jasper.runtime.HttpJspBase</code> will be used.</p> |
||
| 150 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. SERVICE_METHOD_NAME</code></td><td> |
||
| 151 | <p>The name of the service method called by the base class.</p> |
||
| 152 | <p>If not specified, the default value of <code>_jspService</code> |
||
| 153 | will be used.</p> |
||
| 154 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. SERVLET_CLASSPATH</code></td><td> |
||
| 155 | <p>The name of the ServletContext attribute that provides the classpath |
||
| 156 | for the JSP.</p> |
||
| 157 | <p>If not specified, the default value of |
||
| 158 | <code>org.apache.catalina.jsp_classpath</code> will be used.</p> |
||
| 159 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. JSP_FILE</code></td><td> |
||
| 160 | <p>The name of the request attribute for <code><jsp-file></code> |
||
| 161 | element of a servlet definition. If present on a request, this overrides |
||
| 162 | the value returned by <code>request.getServletPath()</code> to select the |
||
| 163 | JSP page to be executed.</p> |
||
| 164 | <p>If not specified, the default value of |
||
| 165 | <code>org.apache.catalina.jsp_file</code> will be used.</p> |
||
| 166 | <p><strong>Deprecated:</strong> This will be removed in Tomcat 9.0.x |
||
| 167 | onwards. It is replaced by the use of the jspFile servlet initialisation |
||
| 168 | parameter</p> |
||
| 169 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. PRECOMPILE</code></td><td> |
||
| 170 | <p>The name of the query parameter that causes the JSP engine to just |
||
| 171 | pregenerate the servlet but not invoke it.</p> |
||
| 172 | <p>If not specified, the default value of <code>jsp_precompile</code> |
||
| 173 | will be used, as defined by JSP specification (JSP.11.4.2).</p> |
||
| 174 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. JSP_PACKAGE_NAME</code></td><td> |
||
| 175 | <p>The default package name for compiled JSPs.</p> |
||
| 176 | <p>If not specified, the default value of <code>org.apache.jsp</code> |
||
| 177 | will be used.</p> |
||
| 178 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. TAG_FILE_PACKAGE_NAME</code></td><td> |
||
| 179 | <p>The default package name for tag handlers generated from tag files.</p> |
||
| 180 | <p>If not specified, the default value of <code>org.apache.jsp.tag</code> |
||
| 181 | will be used.</p> |
||
| 182 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. ALT_DD_ATTR</code></td><td> |
||
| 183 | <p>The servlet context attribute under which the alternate deployment |
||
| 184 | descriptor for this web application is stored.</p> |
||
| 185 | <p>If not specified, the default value of |
||
| 186 | <code>org.apache.catalina.deploy.alt_dd</code> will be used.</p> |
||
| 187 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. TEMP_VARIABLE_NAME_PREFIX</code></td><td> |
||
| 188 | <p>Prefix to use for generated temporary variable names.</p> |
||
| 189 | <p>If not specified, the default value of <code>_jspx_temp</code> |
||
| 190 | will be used.</p> |
||
| 191 | </td></tr><tr><td><code class="propertyName">org.apache.jasper.Constants. USE_INSTANCE_MANAGER_FOR_TAGS</code></td><td> |
||
| 192 | <p>If <code>true</code>, the instance manager is used to obtain tag |
||
| 193 | handler instances.</p> |
||
| 194 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 195 | </td></tr></table> |
||
| 196 | |||
| 197 | </div><h3 id="Security">Security</h3><div class="text"> |
||
| 198 | |||
| 199 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 200 | Property |
||
| 201 | </th><th style="width: 85%;"> |
||
| 202 | Description |
||
| 203 | </th></tr><tr><td><code class="propertyName">org.apache.catalina.connector. RECYCLE_FACADES</code></td><td> |
||
| 204 | <p>If this is <code>true</code> or if a security manager is in use a new |
||
| 205 | facade object will be created for each request.</p> |
||
| 206 | <p>If not specified, the default value of <code>true</code> will be used.</p> |
||
| 207 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.connector. CoyoteAdapter.ALLOW_BACKSLASH</code></td><td> |
||
| 208 | <p>If this is <code>true</code> the '\' character will be permitted as a |
||
| 209 | path delimiter.</p> |
||
| 210 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 211 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.util.buf. UDecoder.ALLOW_ENCODED_SLASH</code></td><td> |
||
| 212 | <p>Use of this system property is deprecated. It will be removed from |
||
| 213 | Tomcat 10 onwards.</p> |
||
| 214 | <p>If this system property is set to <code>true</code>, the default for |
||
| 215 | the <code>encodedSolidusHandling</code> attribute of all Connectors will |
||
| 216 | be changed from <code>reject</code> to <code>decode</code>. If decoded, it |
||
| 217 | will be treated a path delimiter.</p> |
||
| 218 | </td></tr></table> |
||
| 219 | |||
| 220 | </div><h3 id="Specifications">Specifications</h3><div class="text"> |
||
| 221 | |||
| 222 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 223 | Property |
||
| 224 | </th><th style="width: 85%;"> |
||
| 225 | Description |
||
| 226 | </th></tr><tr><td><code class="propertyName">org.apache.catalina. STRICT_SERVLET_COMPLIANCE</code></td><td> |
||
| 227 | <p>The default value of this system property is <code>false</code>.</p> |
||
| 228 | <p>If this is <code>true</code> the default values will be changed for:</p> |
||
| 229 | <ul> |
||
| 230 | <li><code>org.apache.catalina.core.<br>ApplicationContext.GET_RESOURCE_REQUIRE_SLASH</code></li> |
||
| 231 | <li><code>org.apache.catalina.core.<br>ApplicationDispatcher.WRAP_SAME_OBJECT</code></li> |
||
| 232 | <li><code>org.apache.catalina.core.<br>StandardHostValve.ACCESS_SESSION</code></li> |
||
| 233 | <li><code>org.apache.catalina.session.<br>StandardSession.ACTIVITY_CHECK</code></li> |
||
| 234 | <li><code>org.apache.catalina.session.<br>StandardSession.LAST_ACCESS_AT_START</code></li> |
||
| 235 | <li><code>org.apache.tomcat.util.http.<br>ServerCookie.STRICT_NAMING</code></li> |
||
| 236 | <li>The <code>resourceOnlyServlets</code> attribute of any |
||
| 237 | <a href="context.html">Context</a> element.</li> |
||
| 238 | <li>The <code>tldValidation</code> attribute of any |
||
| 239 | <a href="context.html">Context</a> element.</li> |
||
| 240 | <li>The <code>useRelativeRedirects</code> attribute of any |
||
| 241 | <a href="context.html">Context</a> element.</li> |
||
| 242 | <li>The <code>xmlNamespaceAware</code> attribute of any |
||
| 243 | <a href="context.html">Context</a> element.</li> |
||
| 244 | <li>The <code>xmlValidation</code> attribute of any |
||
| 245 | <a href="context.html">Context</a> element.</li> |
||
| 246 | </ul> |
||
| 247 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.connector. Response.ENFORCE_ENCODING_IN_GET_WRITER</code></td><td> |
||
| 248 | <p>If this is <code>true</code> then |
||
| 249 | a call to <code>Response.getWriter()</code> if no character encoding |
||
| 250 | has been specified will result in subsequent calls to |
||
| 251 | <code>Response.getCharacterEncoding()</code> returning |
||
| 252 | <code>ISO-8859-1</code> and the <code>Content-Type</code> response header |
||
| 253 | will include a <code>charset=ISO-8859-1</code> component. (SRV.15.2.22.1)</p> |
||
| 254 | <p>If not specified, the default specification compliant value of |
||
| 255 | <code>true</code> will be used.</p> |
||
| 256 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.core.ApplicationContext .GET_RESOURCE_REQUIRE_SLASH</code></td><td> |
||
| 257 | <p>If this is <code>true</code> then the path passed to |
||
| 258 | <code>ServletContext.getResource()</code> or |
||
| 259 | <code>ServletContext.getResourceAsStream()</code> must start with |
||
| 260 | "/". If <code>false</code>, code like |
||
| 261 | <code>getResource("myfolder/myresource.txt")</code> will work as Tomcat |
||
| 262 | will prepend "/" to the provided path.</p> |
||
| 263 | <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to |
||
| 264 | <code>true</code>, the default of this setting will be <code>true</code>, |
||
| 265 | else the default value will be <code>false</code>.</p> |
||
| 266 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.core. ApplicationDispatcher.WRAP_SAME_OBJECT</code></td><td> |
||
| 267 | <p>If this is <code>true</code> then any wrapped request or response |
||
| 268 | object passed to an application dispatcher will be checked to ensure that |
||
| 269 | it has wrapped the original request or response.</p> |
||
| 270 | <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to |
||
| 271 | <code>true</code>, the default of this setting will be <code>true</code>, |
||
| 272 | else the default value will be <code>false</code>.</p> |
||
| 273 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.websocket. STRICT_SPEC_COMPLIANCE</code></td><td> |
||
| 274 | <p>The default value of this system property is <code>false</code>.</p> |
||
| 275 | <p>If this is <code>true</code> the default values will be changed for:</p> |
||
| 276 | <ul> |
||
| 277 | <li><code>org.apache.tomcat.websocket.server#isEnforceNoAddAfterHandshake</code> |
||
| 278 | (default changes from <code>false</code> to <code>true</code>)</li> |
||
| 279 | </ul> |
||
| 280 | <p>This system property is deprecated and will be removed in Tomcat |
||
| 281 | 10.1.</p> |
||
| 282 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.util.http. ServerCookie.STRICT_NAMING</code></td><td> |
||
| 283 | <p> If this is <code>true</code> then the requirements of the Servlet specification |
||
| 284 | that Cookie names must adhere to RFC2109 will be enforced. If this is |
||
| 285 | <code>false</code> the naming rules specified in RFC6265 (allow the leading "$") |
||
| 286 | will be used.</p> |
||
| 287 | <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to |
||
| 288 | <code>true</code>, the default of this setting will be <code>true</code>, |
||
| 289 | else the default value will be <code>false</code>.</p> |
||
| 290 | </td></tr></table> |
||
| 291 | |||
| 292 | </div><h3 id="Sessions">Sessions</h3><div class="text"> |
||
| 293 | |||
| 294 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 295 | Property |
||
| 296 | </th><th style="width: 85%;"> |
||
| 297 | Description |
||
| 298 | </th></tr><tr><td><code class="propertyName">org.apache.catalina.authenticator. Constants.SSO_SESSION_COOKIE_NAME</code></td><td> |
||
| 299 | <p>An alternative name for the single sign on session cookie. Defaults to |
||
| 300 | <code>JSESSIONIDSSO</code>.</p> |
||
| 301 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.core. StandardHostValve.ACCESS_SESSION</code></td><td> |
||
| 302 | <p>If this is <code>true</code>, every request that is associated with a |
||
| 303 | session will cause the session's last accessed time to be updated |
||
| 304 | regardless of whether or not the request explicitly accesses the session.</p> |
||
| 305 | <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to |
||
| 306 | <code>true</code>, the default of this setting will be <code>true</code>, |
||
| 307 | else the default value will be <code>false</code>.</p> |
||
| 308 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.session. StandardSession.ACTIVITY_CHECK</code></td><td> |
||
| 309 | <p>If this is <code>true</code>, Tomcat will track the number of active |
||
| 310 | requests for each session. When determining if a session is valid, any |
||
| 311 | session with at least one active request will always be considered valid.</p> |
||
| 312 | <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to |
||
| 313 | <code>true</code>, the default of this setting will be <code>true</code>, |
||
| 314 | else the default value will be <code>false</code>.</p> |
||
| 315 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.session. StandardSession.LAST_ACCESS_AT_START</code></td><td> |
||
| 316 | <p>If this is <code>true</code>, the last accessed time for sessions will |
||
| 317 | be calculated from the beginning of the previous request. If |
||
| 318 | <code>false</code>, the last accessed time for sessions will be calculated |
||
| 319 | from the end of the previous request. This also affects how the idle time |
||
| 320 | is calculated.</p> |
||
| 321 | <p>If <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to |
||
| 322 | <code>true</code>, the default of this setting will be <code>true</code>, |
||
| 323 | else the default value will be <code>false</code>.</p> |
||
| 324 | </td></tr></table> |
||
| 325 | |||
| 326 | </div><h3 id="Logging">Logging</h3><div class="text"> |
||
| 327 | |||
| 328 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 329 | Property |
||
| 330 | </th><th style="width: 85%;"> |
||
| 331 | Description |
||
| 332 | </th></tr><tr><td><code class="propertyName">org.apache.juli.formatter</code></td><td> |
||
| 333 | <p>If no logging configuration file is specified and no logging configuration class is specified |
||
| 334 | using the <code>java.util.logging.config.class</code> and <code>java.util.logging.config.file</code> |
||
| 335 | properties the default logging framework <code>org.apache.juli</code> will use the default |
||
| 336 | <code>java.util.logging.SimpleFormatter</code> for all console output. |
||
| 337 | To simply override the console output formatter, one can use the described property. Example: |
||
| 338 | <code>-Dorg.apache.juli.formatter=org.apache.juli.OneLineFormatter</code></p> |
||
| 339 | </td></tr><tr><td><code class="propertyName">org.apache.juli. AsyncMaxRecordCount</code></td><td> |
||
| 340 | <p>The maximum number of log records that the JULI AsyncFileHandler will queue in memory. |
||
| 341 | New records are added to the queue and get asynchronously removed from the queue |
||
| 342 | and written to the files by a single writer thread. |
||
| 343 | When the queue is full and a new record is being logged |
||
| 344 | the log record will be handled based on the <code>org.apache.juli.AsyncOverflowDropType</code> setting.</p> |
||
| 345 | <p>The default value is <code>10000</code> records. |
||
| 346 | This number represents the global number of records, not on a per handler basis. |
||
| 347 | </p> |
||
| 348 | </td></tr><tr><td><code class="propertyName">org.apache.juli. AsyncOverflowDropType</code></td><td> |
||
| 349 | <p>When the queue of log records of the JULI AsyncFileHandler is full, |
||
| 350 | new log records are handled according to the following setting: |
||
| 351 | </p> |
||
| 352 | <ul> |
||
| 353 | <li><code>1</code> - the newest record in the queue will be dropped and not logged</li> |
||
| 354 | <li><code>2</code> - the oldest record in the queue will be dropped and not logged</li> |
||
| 355 | <li><code>3</code> - suspend the logging thread until older records got written to the log file and the queue is no longer full. |
||
| 356 | This is the only setting that ensures that no messages get lost.</li> |
||
| 357 | <li><code>4</code> - drop the current log record</li> |
||
| 358 | </ul> |
||
| 359 | <p>The default value is <code>1</code> (drop the newest record in the queue).</p> |
||
| 360 | </td></tr><tr><td><code class="propertyName">org.apache.juli.logging. UserDataHelper.CONFIG</code></td><td> |
||
| 361 | <p>The type of logging to use for errors generated by invalid input data. |
||
| 362 | The options are: <code>DEBUG_ALL</code>, <code>INFO_THEN_DEBUG</code>, |
||
| 363 | <code>INFO_ALL</code> and <code>NONE</code>. When |
||
| 364 | <code>INFO_THEN_DEBUG</code> is used, the period for which errors are |
||
| 365 | logged at DEBUG rather than INFO is controlled by the system property |
||
| 366 | <code>org.apache.juli.logging.UserDataHelper.SUPPRESSION_TIME</code>. |
||
| 367 | </p> |
||
| 368 | <p>The default value is <code>INFO_THEN_DEBUG</code>.</p> |
||
| 369 | <p>The errors currently logged using this system are:</p> |
||
| 370 | <ul> |
||
| 371 | <li>invalid cookies;</li> |
||
| 372 | <li>invalid parameters;</li> |
||
| 373 | <li>too many headers, too many parameters (hitting |
||
| 374 | <code>maxHeaderCount</code> or <code>maxParameterCount</code> limits |
||
| 375 | of a <a href="http.html">connector</a>).</li> |
||
| 376 | <li>invalid host names</li> |
||
| 377 | <li>HTTP/2 stream closures</li> |
||
| 378 | </ul> |
||
| 379 | <p>Other errors triggered by invalid input data may be added to this |
||
| 380 | system in later versions.</p> |
||
| 381 | </td></tr><tr><td><code class="propertyName">org.apache.juli.logging. UserDataHelper.SUPPRESSION_TIME</code></td><td> |
||
| 382 | <p>When using <code>INFO_THEN_DEBUG</code> for |
||
| 383 | <code>org.apache.juli.logging.UserDataHelper.CONFIG</code> this system |
||
| 384 | property controls how long messages are logged at DEBUG after a message |
||
| 385 | has been logged at INFO. Once this period has elapsed, the next message |
||
| 386 | will be logged at INFO followed by a new suppression period where |
||
| 387 | messages are logged at DEBUG and so on. The value is measured |
||
| 388 | in seconds.</p> |
||
| 389 | <p>A value of <code>0</code> is equivalent to using <code>INFO_ALL</code> |
||
| 390 | for <code>org.apache.juli.logging.UserDataHelper.CONFIG</code>.</p> |
||
| 391 | <p>A negative value means an infinite suppression period.</p> |
||
| 392 | <p>The default value is <code>86400</code> (24 hours).</p> |
||
| 393 | </td></tr></table> |
||
| 394 | |||
| 395 | </div><h3 id="JAR_Scanning">JAR Scanning</h3><div class="text"> |
||
| 396 | |||
| 397 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 398 | Property |
||
| 399 | </th><th style="width: 85%;"> |
||
| 400 | Description |
||
| 401 | </th></tr><tr><td><code class="propertyName">tomcat.util.scan. StandardJarScanFilter.jarsToSkip</code></td><td> |
||
| 402 | <p>A list of comma-separated file name patterns that is used as the default |
||
| 403 | value for <code>pluggabilitySkip</code> and <code>tldSkip</code> |
||
| 404 | attributes of the standard |
||
| 405 | <a href="jar-scan-filter.html">JarScanFilter</a> implementation.</p> |
||
| 406 | <p>The coded default is empty, however the system property is set in |
||
| 407 | a default Tomcat installation via the |
||
| 408 | <code>$CATALINA_BASE/conf/catalina.properties</code> file.</p> |
||
| 409 | </td></tr><tr><td><code class="propertyName">tomcat.util.scan. StandardJarScanFilter.jarsToScan</code></td><td> |
||
| 410 | <p>A list of comma-separated file name patterns that is used as the default |
||
| 411 | value for <code>pluggabilityScan</code> and <code>tldScan</code> |
||
| 412 | attributes of the standard |
||
| 413 | <a href="jar-scan-filter.html">JarScanFilter</a> implementation.</p> |
||
| 414 | <p>The coded default is empty, however the system property is set in |
||
| 415 | a default Tomcat installation via the |
||
| 416 | <code>$CATALINA_BASE/conf/catalina.properties</code> file.</p> |
||
| 417 | </td></tr></table> |
||
| 418 | |||
| 419 | </div><h3 id="Websockets">Websockets</h3><div class="text"> |
||
| 420 | |||
| 421 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 422 | Property |
||
| 423 | </th><th style="width: 85%;"> |
||
| 424 | Description |
||
| 425 | </th></tr><tr><td><code class="propertyName">org.apache.tomcat. websocket.ALLOW_UNSUPPORTED_EXTENSIONS</code></td><td> |
||
| 426 | <p>If <code>true</code>, allow unknown extensions to be declared by |
||
| 427 | the user.</p> |
||
| 428 | <p>The default value is <code>false</code>.</p> |
||
| 429 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat. websocket.DEFAULT_BUFFER_SIZE</code></td><td> |
||
| 430 | <p>The default size for buffers used in the Websockets container.</p> |
||
| 431 | <p>The default value is <code>8192</code> which corresponds to 8 KiB.</p> |
||
| 432 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat. websocket.DEFAULT_ORIGIN_HEADER_VALUE</code></td><td> |
||
| 433 | <p>Default value of the origin header that will be sent by the client |
||
| 434 | during the upgrade handshake.</p> |
||
| 435 | <p>The default is null so that no origin header is sent.</p> |
||
| 436 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat. websocket.DEFAULT_PROCESS_PERIOD</code></td><td> |
||
| 437 | <p>The number of periodic ticks between periodic processing which |
||
| 438 | involves in particular session expiration checks.</p> |
||
| 439 | <p>The default value is <code>10</code> which corresponds to 10 |
||
| 440 | seconds.</p> |
||
| 441 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat. websocket.DISABLE_BUILTIN_EXTENSIONS</code></td><td> |
||
| 442 | <p>If <code>true</code>, disable all built-in extensions provided by the |
||
| 443 | server, such as message compression.</p> |
||
| 444 | <p>The default value is <code>false</code>.</p> |
||
| 445 | </td></tr></table> |
||
| 446 | |||
| 447 | </div><h3 id="Other">Other</h3><div class="text"> |
||
| 448 | |||
| 449 | <table class="defaultTable"><tr><th style="width: 15%;"> |
||
| 450 | Property |
||
| 451 | </th><th style="width: 85%;"> |
||
| 452 | Description |
||
| 453 | </th></tr><tr><td><code class="propertyName">catalina.useNaming</code></td><td> |
||
| 454 | <p>If this is <code>false</code> it will override the |
||
| 455 | <code>useNaming</code> attribute for all <a href="context.html"> |
||
| 456 | Context</a> elements.</p> |
||
| 457 | </td></tr><tr><td><code class="propertyName">javax.sql.DataSource.Factory</code></td><td> |
||
| 458 | <p>The class name of the factory to use to create resources of type |
||
| 459 | <code>javax.sql.DataSource</code>. If not specified the default of |
||
| 460 | <code>org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory</code> is used |
||
| 461 | which is a package renamed (to avoid conflicts) copy of |
||
| 462 | <a href="https://commons.apache.org/dbcp">Apache Commons DBCP 2</a>.</p> |
||
| 463 | </td></tr><tr><td><code class="propertyName">javax.mail.Session.Factory</code></td><td> |
||
| 464 | <p>The class name of the factory to use to create resources of type |
||
| 465 | <code>javax.mail.Session</code>. If not specified the default of |
||
| 466 | <code>org.apache.naming.factory.MailSessionFactory</code> is used.</p> |
||
| 467 | </td></tr><tr><td><code class="propertyName">jvmRoute</code></td><td> |
||
| 468 | <p>Deprecated. Use the <code>jvmRoute</code> attribute of the |
||
| 469 | <a href="engine.html">Engine</a> element. This will be removed in Tomcat |
||
| 470 | 10.1.</p> |
||
| 471 | <p>Provides a default value for the <code>jvmRoute</code> attribute of the |
||
| 472 | <a href="engine.html">Engine</a> element. It does not override the value |
||
| 473 | configured on the <a href="engine.html">Engine</a> element.</p> |
||
| 474 | </td></tr><tr><td><code class="propertyName">catalina.config</code></td><td> |
||
| 475 | <p>The location from which to load the catalina.properties configuration |
||
| 476 | file. This may be an absolute URL, a relative (to the current working |
||
| 477 | directory) URL or an alternative file name in which case Tomcat will |
||
| 478 | attempt to load the file from the default location of |
||
| 479 | <code>$CATALINA_BASE/conf/</code>.</p> |
||
| 480 | </td></tr><tr><td><code class="propertyName">tomcat.util.buf.StringCache.byte.enabled</code></td><td> |
||
| 481 | <p>If <code>true</code>, the String cache is enabled for |
||
| 482 | <code>ByteChunk</code>.</p> |
||
| 483 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 484 | </td></tr><tr><td><code class="propertyName">tomcat.util.buf.StringCache.char.enabled</code></td><td> |
||
| 485 | <p>If <code>true</code>, the String cache is enabled for |
||
| 486 | <code>CharChunk</code>.</p> |
||
| 487 | <p>If not specified, the default value of <code>false</code> will be used.</p> |
||
| 488 | </td></tr><tr><td><code class="propertyName">tomcat.util.buf.StringCache.trainThreshold</code></td><td> |
||
| 489 | <p>The number of times <code>toString()</code> must be called before the |
||
| 490 | cache is activated.</p> |
||
| 491 | <p>If not specified, the default value of <code>20000</code> will be used.</p> |
||
| 492 | </td></tr><tr><td><code class="propertyName">tomcat.util.buf.StringCache.cacheSize</code></td><td> |
||
| 493 | <p>The size of the String cache.</p> |
||
| 494 | <p>If not specified, the default value of <code>200</code> will be used.</p> |
||
| 495 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.util.buf.UriUtil. WAR_SEPARATOR</code></td><td> |
||
| 496 | <p>The character to use to separate the WAR file and WAR content parts of |
||
| 497 | a WAR URL using the custom WAR scheme provided by Tomcat. This is |
||
| 498 | equivalent to how <code>!</code> is used in JAR URLs.</p> |
||
| 499 | <p>If not specified, the default value of <code>*</code> will be used.</p> |
||
| 500 | </td></tr><tr><td><code class="propertyName">tomcat.util.buf.StringCache.maxStringSize</code></td><td> |
||
| 501 | <p>The maximum length of String that will be cached.</p> |
||
| 502 | <p>If not specified, the default value of <code>128</code> will be used.</p> |
||
| 503 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.util. http.FastHttpDateFormat.CACHE_SIZE</code></td><td> |
||
| 504 | <p>The size of the cache to use parsed and formatted date value.</p> |
||
| 505 | <p>If not specified, the default value of <code>1000</code> will be used.</p> |
||
| 506 | </td></tr><tr><td><code class="propertyName">org.apache.tomcat.util. net.NioSelectorShared</code></td><td> |
||
| 507 | <p>If <code>true</code>, use a shared selector for servlet write/read.</p> |
||
| 508 | <p>If not specified, the default value of <code>true</code> will be used.</p> |
||
| 509 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.startup. EXIT_ON_INIT_FAILURE</code></td><td> |
||
| 510 | <p>If <code>true</code>, the server will exit if an exception happens |
||
| 511 | during the server initialization phase. To support this feature, this |
||
| 512 | system property is used as the default for the |
||
| 513 | <strong>throwOnFailure</strong> attribute of a Connector.</p> |
||
| 514 | <p>If not specified, the default value of <code>false</code> will be |
||
| 515 | used.</p> |
||
| 516 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.startup. RealmRuleSet.MAX_NESTED_REALM_LEVELS</code></td><td> |
||
| 517 | <p>The CombinedRealm allows nested Realms. This property controls the |
||
| 518 | maximum permitted number of levels of nesting.</p> |
||
| 519 | <p>If not specified, the default value of <code>3</code> will be used.</p> |
||
| 520 | </td></tr><tr><td><code class="propertyName">org.apache.catalina.startup. CredentialHandlerRuleSet.MAX_NESTED_LEVELS</code></td><td> |
||
| 521 | <p>The NestedCredentialHandler allows nested CredentialHandlers. This |
||
| 522 | property controls the maximum permitted number of levels of nesting.</p> |
||
| 523 | <p>If not specified, the default value of <code>3</code> will be used.</p> |
||
| 524 | </td></tr></table> |
||
| 525 | |||
| 526 | </div></div></div></div></div><footer><div id="footer"> |
||
| 527 | Copyright © 1999-2025, The Apache Software Foundation |
||
| 528 | <br> |
||
| 529 | Apache Tomcat, Tomcat, Apache, the Apache Tomcat logo and the Apache logo |
||
| 530 | are either registered trademarks or trademarks of the Apache Software |
||
| 531 | Foundation. |
||
| 532 | </div></footer></div></body></html> |