Subversion Repositories Integrator Subversion

Rev

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>&lt;jsp-file&gt;</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 &copy; 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>