blob: 90955fa9e7454b9123917a4437ce49b92e9fdcac [file] [log] [blame]
Cheng Tang697ce242014-04-27 16:18:17 +08001================================================================================
2 Licensed to the Apache Software Foundation (ASF) under one or more
3 contributor license agreements. See the NOTICE file distributed with
4 this work for additional information regarding copyright ownership.
5 The ASF licenses this file to You under the Apache License, Version 2.0
6 (the "License"); you may not use this file except in compliance with
7 the License. You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16================================================================================
17
Cheng Tang697ce242014-04-27 16:18:17 +080018
刘洪青65827522016-10-19 16:10:39 +080019 Apache Tomcat Version 7.0.72
Cheng Tang697ce242014-04-27 16:18:17 +080020 Release Notes
21
22
23=========
24CONTENTS:
25=========
26
27* Dependency Changes
28* API Stability
29* JNI Based Applications
30* Bundled APIs
31* Web application reloading and static fields in shared libraries
32* Tomcat on Linux
33* Enabling SSI and CGI Support
34* Security manager URLs
35* Symlinking static resources
36* Viewing the Tomcat Change Log
37* Cryptographic software notice
38* When all else fails
39
40
41===================
42Dependency Changes:
43===================
44Tomcat 7.0 is designed to run on Java SE 6 and later.
45
46In addition, Tomcat 7.0 uses the Eclipse JDT Java compiler for
47compiling JSP pages. This means you no longer need to have the complete
48Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
49(JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the
50binary Tomcat distributions. Tomcat can also be configured to use the
51compiler from the JDK to compile JSPs, or any other Java compiler supported
52by Apache Ant.
53
54
55==============
56API Stability:
57==============
58The public interfaces for the following classes are fixed and will not be
59changed at all during the remaining lifetime of the 7.x series:
60- javax/**/*
61
62The public interfaces for the following classes may be added to in order to
63resolve bugs and/or add new features. No existing interface will be removed or
64changed although it may be deprecated.
65- org/apache/catalina/*
66- org/apache/catalina/comet/*
67
68Note: As Tomcat 7 matures, the above list will be added to. The list is not
69 considered complete at this time.
70
71The remaining classes are considered part of the Tomcat internals and may change
72without notice between point releases.
73
74
75=======================
76JNI Based Applications:
77=======================
78Applications that require native libraries must ensure that the libraries have
79been loaded prior to use. Typically, this is done with a call like:
80
81 static {
82 System.loadLibrary("path-to-library-file");
83 }
84
85in some class. However, the application must also ensure that the library is
86not loaded more than once. If the above code were placed in a class inside
87the web application (i.e. under /WEB-INF/classes or /WEB-INF/lib), and the
88application were reloaded, the loadLibrary() call would be attempted a second
89time.
90
91To avoid this problem, place classes that load native libraries outside of the
92web application, and ensure that the loadLibrary() call is executed only once
93during the lifetime of a particular JVM.
94
95
96=============
97Bundled APIs:
98=============
99A standard installation of Tomcat 7.0 makes all of the following APIs available
100for use by web applications (by placing them in "lib"):
101* annotations-api.jar (Annotations package)
102* catalina.jar (Tomcat Catalina implementation)
103* catalina-ant.jar (Tomcat Catalina Ant tasks)
104* catalina-ha.jar (High availability package)
105* catalina-tribes.jar (Group communication)
刘洪青65827522016-10-19 16:10:39 +0800106* ecj-4.4.2.jar (Eclipse JDT Java compiler)
Cheng Tang697ce242014-04-27 16:18:17 +0800107* el-api.jar (EL 2.2 API)
108* jasper.jar (Jasper 2 Compiler and Runtime)
109* jasper-el.jar (Jasper 2 EL implementation)
110* jsp-api.jar (JSP 2.2 API)
111* servlet-api.jar (Servlet 3.0 API)
刘洪青65827522016-10-19 16:10:39 +0800112* tomcat7-websocket.jar (WebSocket 1.1 implementation)
Cheng Tang697ce242014-04-27 16:18:17 +0800113* tomcat-api.jar (Interfaces shared by Catalina and Jasper)
114* tomcat-coyote.jar (Tomcat connectors and utility classes)
115* tomcat-dbcp.jar (package renamed database connection pool based on Commons DBCP)
刘洪青65827522016-10-19 16:10:39 +0800116* tomcat-jdbc.jar (Tomcat's database connection pooling solution)
117* tomcat-util.jar (Various utilities)
118* websocket-api.jar (WebSocket 1.1 API)
Cheng Tang697ce242014-04-27 16:18:17 +0800119
120You can make additional APIs available to all of your web applications by
121putting unpacked classes into a "classes" directory (not created by default),
122or by placing them in JAR files in the "lib" directory.
123
124To override the XML parser implementation or interfaces, use the endorsed
125mechanism of the JVM. The default configuration defines JARs located in
126"endorsed" as endorsed.
127
128
129================================================================
130Web application reloading and static fields in shared libraries:
131================================================================
132Some shared libraries (many are part of the JDK) keep references to objects
133instantiated by the web application. To avoid class loading related problems
134(ClassCastExceptions, messages indicating that the classloader
135is stopped, etc.), the shared libraries state should be reinitialized.
136
137Something which might help is to avoid putting classes which would be
138referenced by a shared static field in the web application classloader,
139and putting them in the shared classloader instead (JARs should be put in the
140"lib" folder, and classes should be put in the "classes" folder).
141
142
143================
144Tomcat on Linux:
145================
146GLIBC 2.2 / Linux 2.4 users should define an environment variable:
147export LD_ASSUME_KERNEL=2.2.5
148
149Redhat Linux 9.0 users should use the following setting to avoid
150stability problems:
151export LD_ASSUME_KERNEL=2.4.1
152
153There are some Linux bugs reported against the NIO sendfile behavior, make sure you
154have a JDK that is up to date, or disable sendfile behavior in the Connector.<br/>
1556427312: (fc) FileChannel.transferTo() throws IOException "system call interrupted"<br/>
1565103988: (fc) FileChannel.transferTo should return -1 for EAGAIN instead throws IOException<br/>
1576253145: (fc) FileChannel.transferTo on Linux fails when going beyond 2GB boundary<br/>
1586470086: (fc) FileChannel.transferTo(2147483647, 1, channel) cause "Value too large" exception<br/>
159
160
161=============================
162Enabling SSI and CGI Support:
163=============================
164Because of the security risks associated with CGI and SSI available
165to web applications, these features are disabled by default.
166
167To enable and configure CGI support, please see the cgi-howto.html page.
168
169To enable and configue SSI support, please see the ssi-howto.html page.
170
171
172======================
173Security manager URLs:
174======================
175In order to grant security permissions to JARs located inside the
176web application repository, use URLs of of the following format
177in your policy file:
178
179file:${catalina.base}/webapps/examples/WEB-INF/lib/driver.jar
180
181
182============================
183Symlinking static resources:
184============================
185By default, Unix symlinks will not work when used in a web application to link
186resources located outside the web application root directory.
187
188This behavior is optional, and the "allowLinking" flag may be used to disable
189the check.
190
191
192==============================
193Viewing the Tomcat Change Log:
194==============================
195See changelog.html in this directory.
196
197
198=============================
199Cryptographic software notice
200=============================
201This distribution includes cryptographic software. The country in
202which you currently reside may have restrictions on the import,
203possession, use, and/or re-export to another country, of
204encryption software. BEFORE using any encryption software, please
205check your country's laws, regulations and policies concerning the
206import, possession, or use, and re-export of encryption software, to
207see if this is permitted. See <http://www.wassenaar.org/> for more
208information.
209
210The U.S. Government Department of Commerce, Bureau of Industry and
211Security (BIS), has classified this software as Export Commodity
212Control Number (ECCN) 5D002.C.1, which includes information security
213software using or performing cryptographic functions with asymmetric
214algorithms. The form and manner of this Apache Software Foundation
215distribution makes it eligible for export under the License Exception
216ENC Technology Software Unrestricted (TSU) exception (see the BIS
217Export Administration Regulations, Section 740.13) for both object
218code and source code.
219
220The following provides more details on the included cryptographic
221software:
222 - Tomcat includes code designed to work with JSSE
223 - Tomcat includes code designed to work with OpenSSL
224
225
226====================
227When all else fails:
228====================
229See the FAQ
230http://tomcat.apache.org/faq/