blob: 74d1d1c058415caf3ab6baeb8e6e5df71b8a4733 [file] [log] [blame]
刘洪青6266f992017-05-15 21:21:03 +08001<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 7 Configuration Reference (7.0.77) - The Loader Component</title><meta name="author" content="Craig R. McClanahan"><style type="text/css" media="print">
2 .noPrint {display: none;}
3 td#mainBody {width: 100%;}
4</style><style type="text/css">
5code {background-color:rgb(224,255,255);padding:0 0.1em;}
6code.attributeName, code.propertyName {background-color:transparent;}
7
8
9table {
10 border-collapse: collapse;
11 text-align: left;
12}
13table *:not(table) {
14 /* Prevent border-collapsing for table child elements like <div> */
15 border-collapse: separate;
16}
17
18th {
19 text-align: left;
20}
21
22
23div.codeBox pre code, code.attributeName, code.propertyName, code.noHighlight, .noHighlight code {
24 background-color: transparent;
25}
26div.codeBox {
27 overflow: auto;
28 margin: 1em 0;
29}
30div.codeBox pre {
31 margin: 0;
32 padding: 4px;
33 border: 1px solid #999;
34 border-radius: 5px;
35 background-color: #eff8ff;
36 display: table; /* To prevent <pre>s from taking the complete available width. */
37 /*
38 When it is officially supported, use the following CSS instead of display: table
39 to prevent big <pre>s from exceeding the browser window:
40 max-width: available;
41 width: min-content;
42 */
43}
44
45div.codeBox pre.wrap {
46 white-space: pre-wrap;
47}
48
49
50table.defaultTable tr, table.detail-table tr {
51 border: 1px solid #CCC;
52}
53
54table.defaultTable tr:nth-child(even), table.detail-table tr:nth-child(even) {
55 background-color: #FAFBFF;
56}
57
58table.defaultTable tr:nth-child(odd), table.detail-table tr:nth-child(odd) {
59 background-color: #EEEFFF;
60}
61
62table.defaultTable th, table.detail-table th {
63 background-color: #88b;
64 color: #fff;
65}
66
67table.defaultTable th, table.defaultTable td, table.detail-table th, table.detail-table td {
68 padding: 5px 8px;
69}
70
71
72p.notice {
73 border: 1px solid rgb(255, 0, 0);
74 background-color: rgb(238, 238, 238);
75 color: rgb(0, 51, 102);
76 padding: 0.5em;
77 margin: 1em 2em 1em 1em;
78}
79</style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../images/tomcat.gif" align="right" alt="
Hongqing Liufd5ee812014-05-10 16:32:51 +080080 The Apache Tomcat Servlet/JSP Container
刘洪青6266f992017-05-15 21:21:03 +080081 " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 7</font></h1><font face="arial,helvetica,sanserif">Version 7.0.77, Mar 28 2017</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../images/asf-logo.svg" align="right" alt="Apache Logo" border="0" style="width: 266px;height: 83px;"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap class="noPrint"><p><strong>Links</strong></p><ul><li><a href="../index.html">Docs Home</a></li><li><a href="index.html">Config Ref. Home</a></li><li><a href="http://wiki.apache.org/tomcat/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul><p><strong>Top Level Elements</strong></p><ul><li><a href="server.html">Server</a></li><li><a href="service.html">Service</a></li></ul><p><strong>Executors</strong></p><ul><li><a href="executor.html">Executor</a></li></ul><p><strong>Connectors</strong></p><ul><li><a href="http.html">HTTP</a></li><li><a href="ajp.html">AJP</a></li></ul><p><strong>Containers</strong></p><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><p><strong>Nested Components</strong></p><ul><li><a href="globalresources.html">Global Resources</a></li><li><a href="jar-scanner.html">JarScanner</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><p><strong>Cluster Elements</strong></p><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><p><strong>web.xml</strong></p><ul><li><a href="filter.html">Filter</a></li></ul><p><strong>Other</strong></p><ul><li><a href="systemprops.html">System properties</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>The Loader Component</h1><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
82<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Attributes">Attributes</a><ol><li><a href="#Common_Attributes">Common Attributes</a></li><li><a href="#Standard_Implementation">Standard Implementation</a></li><li><a href="#VirtualWebappLoader_Implementation">VirtualWebappLoader Implementation</a></li></ol></li><li><a href="#Nested_Components">Nested Components</a></li><li><a href="#Special_Features">Special Features</a><ol><li><a href="#Logging">Logging</a></li></ol></li></ul>
Hongqing Liufd5ee812014-05-10 16:32:51 +080083</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
84
85 <p>The <strong>Loader</strong> element represents the <em>web
86 application class loader</em> that will be used to load Java
87 classes and resources for your web application. Such
88 a class loader must follow the requirements of the Servlet
89 Specification, and load classes from the following locations:</p>
90 <ul>
91 <li>From the <code>/WEB-INF/classes</code> directory inside your
92 web application.</li>
93 <li>From JAR files in the <code>/WEB-INF/lib</code> directory
94 inside your web application.</li>
95 <li>From resources made available by Catalina to all web
96 applications globally.</li>
97 </ul>
98
99 <p>A Loader element MAY be nested inside a <a href="context.html">Context</a>
100 component. If it is not included, a default Loader configuration will be
101 created automatically, which is sufficient for most requirements.</p>
102
103 <p>For a more in-depth description of the class loader hierarchy
104 that is implemented by Catalina, see <a href="../class-loader-howto.html">the ClassLoader HowTo</a>.</p>
105
刘洪青6266f992017-05-15 21:21:03 +0800106 <p><em>The description below uses the variable name $CATALINA_BASE to refer the
Hongqing Liufd5ee812014-05-10 16:32:51 +0800107 base directory against which most relative paths are resolved. If you have
刘洪青6266f992017-05-15 21:21:03 +0800108 not configured Tomcat for multiple instances by setting a CATALINA_BASE
Hongqing Liufd5ee812014-05-10 16:32:51 +0800109 directory, then $CATALINA_BASE will be set to the value of $CATALINA_HOME,
刘洪青6266f992017-05-15 21:21:03 +0800110 the directory into which you have installed Tomcat.</em></p>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800111
112</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
113
114 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><!--()--></a><a name="Common_Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
115
116 <p>All implementations of <strong>Loader</strong>
117 support the following attributes:</p>
118
刘洪青6266f992017-05-15 21:21:03 +0800119 <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code class="attributeName">className</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800120 <p>Java class name of the implementation to use. This class must
121 implement the <code>org.apache.catalina.Loader</code> interface.
122 If not specified, the standard value (defined below) will be used.</p>
刘洪青6266f992017-05-15 21:21:03 +0800123 </td></tr><tr><td align="left" valign="center"><code class="attributeName">delegate</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800124 <p>Set to <code>true</code> if you want the class loader to follow
125 the standard Java2 delegation model, and attempt to load classes from
126 parent class loaders <strong>before</strong> looking inside the web
127 application. Set to <code>false</code> (the default) to have the
128 class loader look inside the web application first, before asking
129 parent class loaders to find requested classes or resources.</p>
刘洪青6266f992017-05-15 21:21:03 +0800130 </td></tr><tr><td align="left" valign="center"><code class="attributeName">reloadable</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800131 <p>Set to <code>true</code> if you want Catalina to monitor classes in
132 <code>/WEB-INF/classes/</code> and <code>/WEB-INF/lib</code> for
133 changes, and automatically reload the web application if a change
134 is detected. This feature is very useful during application
135 development, but it requires significant runtime overhead and is
136 not recommended for use on deployed production applications. You
137 can use the <a href="../manager-howto.html">Manager</a> web
138 application, however, to trigger reloads of deployed applications
139 on demand.</p>
140
141 <p><strong>NOTE</strong> - The value for this property will be
142 inherited from the <code>reloadable</code> attribute you set on
143 the surrounding <a href="context.html">Context</a> component,
144 and any value you explicitly set here will be replaced.</p>
145 </td></tr></table>
146
147 </blockquote></td></tr></table>
148
149
150 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><!--()--></a><a name="Standard_Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
151
152 <p>The standard implementation of <strong>Loader</strong> is
153 <strong>org.apache.catalina.loader.WebappLoader</strong>.
154 It supports the following additional attributes (in addition to the
155 common attributes listed above):</p>
156
刘洪青6266f992017-05-15 21:21:03 +0800157 <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code class="attributeName">loaderClass</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800158 <p>Java class name of the <code>java.lang.ClassLoader</code>
159 implementation class to use. If not specified, the default value is
160 <code>org.apache.catalina.loader.WebappClassLoader</code>. Custom
161 <strong>loaderClass</strong> implementations must extend
刘洪青6266f992017-05-15 21:21:03 +0800162 <code>org.apache.catalina.loader.WebappClassLoaderBase</code>.The
163 default <strong>loaderClass</strong> is not parallel capable. A parallel
164 capable <strong>loaderClass</strong> is available when running on a Java
165 7 or higher JRE and can be used by specifying
166 <code>org.apache.catalina.loader.ParallelWebappClassLoader</code>.</p>
167 </td></tr><tr><td align="left" valign="center"><code class="attributeName">searchExternalFirst</code></td><td align="left" valign="center">
Hongqing Liufd5ee812014-05-10 16:32:51 +0800168 <p>Set to <code>true</code> if you want repositories outside
169 of <code>WEB-INF/classes</code> and <code>WEB-INF/lib</code> to
170 be searched first. Default value is <code>false</code>.</p>
171 </td></tr></table>
172
173 </blockquote></td></tr></table>
174
刘洪青6266f992017-05-15 21:21:03 +0800175 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="VirtualWebappLoader Implementation"><!--()--></a><a name="VirtualWebappLoader_Implementation"><strong>VirtualWebappLoader Implementation</strong></a></font></td></tr><tr><td><blockquote>
176
177 <p>This implementation of <strong>Loader</strong> is
178 <strong>org.apache.catalina.loader.VirtualWebappLoader</strong>.
179 It extends <code>WebappLoader</code> and supports the following
180 additional attributes</p>
181
182 <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code class="attributeName">virtualClasspath</code></td><td align="left" valign="center">
183 <p>Additional repositories to search for resources.
184 Multiple values can be joined using <code>;</code>
185 as a separator.</p>
186 <p>Leading and trailing whitespaces in values are ignored.
187 If a value does not point to an existing directory or
188 <code>*.jar</code> file, it is silently skipped.
189 Diagnostic messages can be seen if you enable debug logging for
190 the VirtualWebappLoader class.
191 </p>
192 <p>Example: <code>virtualClasspath="${catalina.base}/myapp_config"</code></p>
193 </td></tr><tr><td align="left" valign="center"><code class="attributeName">searchVirtualFirst</code></td><td align="left" valign="center">
194 <p>Set to <code>true</code> if you want the virtual
195 class path to be searched before
196 <code>WEB-INF/classes</code> and <code>WEB-INF/lib</code>.
197 Default value is <code>false</code>.</p>
198 <p>If searched before, resources located in the virtual
199 class path take precendence over resources with the same
200 name contained in the webapp.</p>
201 </td></tr></table>
202
203 </blockquote></td></tr></table>
204
Hongqing Liufd5ee812014-05-10 16:32:51 +0800205
206</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><!--()--></a><a name="Nested_Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
207
208 <p>No components may be nested inside a <strong>Loader</strong> element.</p>
209
210</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><!--()--></a><a name="Special_Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
211
212 <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Logging"><strong>Logging</strong></a></font></td></tr><tr><td><blockquote>
213
214 <p>A loader is associated with the log category based on its classname.</p>
215
216 </blockquote></td></tr></table>
217
刘洪青6266f992017-05-15 21:21:03 +0800218</blockquote></td></tr></table></td></tr><tr class="noPrint"><td width="20%" valign="top" nowrap class="noPrint"></td><td width="80%" valign="top" align="left"><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="comments_section" id="comments_section"><strong>Comments</strong></a></font></td></tr><tr><td><blockquote><p class="notice"><strong>Notice: </strong>This comments section collects your suggestions
219 on improving documentation for Apache Tomcat.<br><br>
220 If you have trouble and need help, read
221 <a href="http://tomcat.apache.org/findhelp.html">Find Help</a> page
222 and ask your question on the tomcat-users
223 <a href="http://tomcat.apache.org/lists.html">mailing list</a>.
224 Do not ask such questions here. This is not a Q&amp;A section.<br><br>
225 The Apache Comments System is explained <a href="../comments.html">here</a>.
226 Comments may be removed by our moderators if they are either
227 implemented or considered invalid/off-topic.</p><script type="text/javascript"><!--//--><![CDATA[//><!--
228 var comments_shortname = 'tomcat';
229 var comments_identifier = 'http://tomcat.apache.org/tomcat-7.0-doc/config/loader.html';
230 (function(w, d) {
231 if (w.location.hostname.toLowerCase() == "tomcat.apache.org") {
232 d.write('<div id="comments_thread"><\/div>');
233 var s = d.createElement('script');
234 s.type = 'text/javascript';
235 s.async = true;
236 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
237 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
238 }
239 else {
240 d.write('<div id="comments_thread"><strong>Comments are disabled for this page at the moment.<\/strong><\/div>');
241 }
242 })(window, document);
243 //--><!]]></script></blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
244 Copyright &copy; 1999-2017, Apache Software Foundation
Hongqing Liufd5ee812014-05-10 16:32:51 +0800245 </em></font></div></td></tr></table></body></html>