179 lines
6.5 KiB
Plaintext
179 lines
6.5 KiB
Plaintext
|
|
||
|
|
||
|
Apache Tomcat Version 6.0.14
|
||
|
Release Notes
|
||
|
|
||
|
|
||
|
$Id: RELEASE-NOTES 521511 2007-03-22 22:38:04Z fhanik $
|
||
|
|
||
|
|
||
|
=============================
|
||
|
KNOWN ISSUES IN THIS RELEASE:
|
||
|
=============================
|
||
|
|
||
|
* Dependency Changes
|
||
|
* JNI Based Applications
|
||
|
* Bundled APIs
|
||
|
* Web application reloading and static fields in shared libraries
|
||
|
* Tomcat on Linux
|
||
|
* Enabling SSI and CGI Support
|
||
|
* Security manager URLs
|
||
|
* Symlinking static resources
|
||
|
* Enabling invoker servlet
|
||
|
* Viewing the Tomcat Change Log
|
||
|
* When all else fails
|
||
|
|
||
|
|
||
|
===================
|
||
|
Dependency Changes:
|
||
|
===================
|
||
|
Tomcat 6.0 is designed to run on JSE 5.0 and later, and requires
|
||
|
configuration to run on JSE 5.0.
|
||
|
|
||
|
In addition, Tomcat 6.0 uses the Eclipse JDT Java compiler for compiling
|
||
|
JSP pages. This means you no longer need to have the complete
|
||
|
Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
|
||
|
(JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the
|
||
|
binary Tomcat distributions. Tomcat can also be configured to use the
|
||
|
compiler from the JDK to compile JSPs, or any other Java compiler supported
|
||
|
by Apache Ant.
|
||
|
|
||
|
|
||
|
=======================
|
||
|
JNI Based Applications:
|
||
|
=======================
|
||
|
Applications that require native libraries must ensure that the libraries have
|
||
|
been loaded prior to use. Typically, this is done with a call like:
|
||
|
|
||
|
static {
|
||
|
System.loadLibrary("path-to-library-file");
|
||
|
}
|
||
|
|
||
|
in some class. However, the application must also ensure that the library is
|
||
|
not loaded more than once. If the above code were placed in a class inside
|
||
|
the web application (i.e. under /WEB-INF/classes or /WEB-INF/lib), and the
|
||
|
application were reloaded, the loadLibrary() call would be attempted a second
|
||
|
time.
|
||
|
|
||
|
To avoid this problem, place classes that load native libraries outside of the
|
||
|
web application, and ensure that the loadLibrary() call is executed only once
|
||
|
during the lifetime of a particular JVM.
|
||
|
|
||
|
|
||
|
=============
|
||
|
Bundled APIs:
|
||
|
=============
|
||
|
A standard installation of Tomcat 6.0 makes all of the following APIs available
|
||
|
for use by web applications (by placing them in "lib"):
|
||
|
* annotations-api.jar (Annotations package)
|
||
|
* catalina.jar (Tomcat Catalina implementation)
|
||
|
* catalina-ant.jar (Tomcat Catalina Ant tasks)
|
||
|
* catalina-ha.jar (High availability package)
|
||
|
* catalina-tribes.jar (Group communication)
|
||
|
* commons-logging-api.jar (Commons Logging API 1.0.x)
|
||
|
* el-api.jar (EL 2.1 API)
|
||
|
* jasper.jar (Jasper 2 Compiler and Runtime)
|
||
|
* jasper-el.jar (Jasper 2 EL implementation)
|
||
|
* jasper-jdt.jar (Eclipse JDT 3.2 Java compiler)
|
||
|
* jsp-api.jar (JSP 2.1 API)
|
||
|
* servlet-api.jar (Servlet 2.5 API)
|
||
|
* tomcat-coyote.jar (Tomcat connectors and utility classes)
|
||
|
* tomcat-dbcp.jar (package renamed database connection pool based on Commons DBCP)
|
||
|
|
||
|
You can make additional APIs available to all of your web applications by
|
||
|
putting unpacked classes into a "classes" directory (not created by default),
|
||
|
or by placing them in JAR files in the "lib" directory.
|
||
|
|
||
|
To override the XML parser implementation or interfaces, use the endorsed
|
||
|
mechanism of the JVM. The default configuration defines JARs located in
|
||
|
"endorsed" as endorsed.
|
||
|
|
||
|
|
||
|
================================================================
|
||
|
Web application reloading and static fields in shared libraries:
|
||
|
================================================================
|
||
|
Some shared libraries (many are part of the JDK) keep references to objects
|
||
|
instantiated by the web application. To avoid class loading related problems
|
||
|
(ClassCastExceptions, messages indicating that the classloader
|
||
|
is stopped, etc.), the shared libraries state should be reinitialized.
|
||
|
|
||
|
Something which might help is to avoid putting classes which would be
|
||
|
referenced by a shared static field in the web application classloader,
|
||
|
and putting them in the shared classloader instead (JARs should be put in the
|
||
|
"lib" folder, and classes should be put in the "classes" folder).
|
||
|
|
||
|
|
||
|
================
|
||
|
Tomcat on Linux:
|
||
|
================
|
||
|
GLIBC 2.2 / Linux 2.4 users should define an environment variable:
|
||
|
export LD_ASSUME_KERNEL=2.2.5
|
||
|
|
||
|
Redhat Linux 9.0 users should use the following setting to avoid
|
||
|
stability problems:
|
||
|
export LD_ASSUME_KERNEL=2.4.1
|
||
|
|
||
|
There are some Linux bugs reported against the NIO sendfile behavior, make sure you
|
||
|
have a JDK that is up to date, or disable sendfile behavior in the Connector.<br/>
|
||
|
6427312: (fc) FileChannel.transferTo() throws IOException "system call interrupted"<br/>
|
||
|
5103988: (fc) FileChannel.transferTo should return -1 for EAGAIN instead throws IOException<br/>
|
||
|
6253145: (fc) FileChannel.transferTo on Linux fails when going beyond 2GB boundary<br/>
|
||
|
6470086: (fc) FileChannel.transferTo(2147483647, 1, channel) cause "Value too large" exception<br/>
|
||
|
|
||
|
|
||
|
=============================
|
||
|
Enabling SSI and CGI Support:
|
||
|
=============================
|
||
|
Because of the security risks associated with CGI and SSI available
|
||
|
to web applications, these features are disabled by default.
|
||
|
|
||
|
To enable and configure CGI support, please see the cgi-howto.html page.
|
||
|
|
||
|
To enable and configue SSI support, please see the ssi-howto.html page.
|
||
|
|
||
|
|
||
|
======================
|
||
|
Security manager URLs:
|
||
|
======================
|
||
|
In order to grant security permissions to JARs located inside the
|
||
|
web application repository, use URLs of of the following format
|
||
|
in your policy file:
|
||
|
|
||
|
file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar
|
||
|
|
||
|
|
||
|
============================
|
||
|
Symlinking static resources:
|
||
|
============================
|
||
|
By default, Unix symlinks will not work when used in a web application to link
|
||
|
resources located outside the web application root directory.
|
||
|
|
||
|
This behavior is optional, and the "allowLinking" flag may be used to disable
|
||
|
the check.
|
||
|
|
||
|
|
||
|
=========================
|
||
|
Enabling invoker servlet:
|
||
|
=========================
|
||
|
Starting with Tomcat 4.1.12, the invoker servlet is no longer available by
|
||
|
default in all webapps. Enabling it for all webapps is possible by editing
|
||
|
$CATALINA_HOME/conf/web.xml to uncomment the "/servlet/*" servlet-mapping
|
||
|
definition.
|
||
|
|
||
|
Using the invoker servlet in a production environment is not recommended and
|
||
|
is unsupported. More details are available on the Tomcat FAQ at
|
||
|
http://tomcat.apache.org/faq/misc.html#invoker.
|
||
|
|
||
|
|
||
|
==============================
|
||
|
Viewing the Tomcat Change Log:
|
||
|
==============================
|
||
|
See changelog.html in this directory.
|
||
|
|
||
|
|
||
|
====================
|
||
|
When all else fails:
|
||
|
====================
|
||
|
See the FAQ
|
||
|
http://tomcat.apache.org/faq/
|