Apache Tomcat 9 Application Server Quick Review

Apache Tomcat 9 Application Server


Tomcat is the most popular opensource Java application server. It is also considered as a industry standard for setting up development environment by developers. So here in this article we will quickly review the Apache Tomcat application server version 9.x. From this article you will be able to learn what is new with Tomcat 9. In this article we have taken apache-tomcat-9.0.0.M17.


Why Tomcat 9?

Apache Tomcat 9.0 is designed to run on Java SE 8 and later. So if you are looking for using latest Java with your application then tomcat version 9 is your go to server.

Apache Tomcat 9 Download

You can download tomcat application server version 9 from here

Apache Tomcat 9 documents

All documents can be viewed here

What all API’s comes by default with Tomcat 9?

A standard installation of Apache Tomcat application server 9.0 makes all of the following APIs available for use:

* annotations-api.jar (Annotations package)
* catalina.jar (Tomcat Catalina implementation)
* catalina-ant.jar (Tomcat Catalina Ant tasks)
* catalina-ha.jar (High availability package)
* catalina-storeconfig.jar (Generation of XML configuration from current state)
* catalina-tribes.jar (Group communication)
* ecj-4.6.1.jar (Eclipse JDT Java compiler)
* el-api.jar (EL 3.0 API)
* jasper.jar (Jasper 2 Compiler and Runtime)
* jasper-el.jar (Jasper 2 EL implementation)
* jsp-api.jar (JSP 2.3 API)
* servlet-api.jar (Servlet 4.0 API)
* tomcat-api.jar (Interfaces shared by Catalina and Jasper)
* tomcat-coyote.jar (Tomcat connectors and utility classes)
* tomcat-dbcp.jar (package renamed database connection pool based on Commons DBCP)
* tomcat-jdbc.jar (Tomcat's database connection pooling solution)
* tomcat-jni.jar (Interface to the native component of the APR/native connector)
* tomcat-util.jar (Various utilities)
* tomcat-websocket.jar (WebSocket 1.1 implementation)
* websocket-api.jar (WebSocket 1.1 API)

Tomcat 9

What all changed in Apache Tomcat 9?

Apart from minimum requirement of Java 8 there are many bug fixes and upgradations. You can review complete list here

Error seen while trying operate Tomcat 9 on 1.7 JDK and after setting Java to 1.8 it worked fine.

Using CATALINA_BASE: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17"
Using CATALINA_HOME: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17"
Using CATALINA_TMPDIR: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\temp"
Using JRE_HOME: "D:\Programs\Java\jdk1.7.0_25"
Using CLASSPATH: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin\bootstrap.jar;D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin\tomcat-juli.jar"
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/util/ServerInfo : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin>set JAVA_HOME=D:\Programs\Java\jdk1.8.0_51

D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin>set PATH=D:\Programs\Java\jdk1.8.0_51\bin;%PATH%

Using CATALINA_BASE: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17"
Using CATALINA_HOME: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17"
Using CATALINA_TMPDIR: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\temp"
Using JRE_HOME: "D:\Programs\Java\jdk1.8.0_51"
Using CLASSPATH: "D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin\bootstrap.jar;D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin\tomcat-juli.jar"
Server version: Apache Tomcat/9.0.0.M17
Server built: Jan 10 2017 20:59:20 UTC
Server number:
OS Name: Windows 7
OS Version: 6.1
Architecture: amd64
JVM Version: 1.8.0_51-b16
JVM Vendor: Oracle Corporation

Running Apache Tomcat 9

Below Environment Variables are required to start Tomcat 9.

1. Set CATALINA_HOME (required) and CATALINA_BASE (optional)
2. Set JRE_HOME or JAVA_HOME (required)
3. Using the “setenv” script (optional, recommended) – The script is available at CATALINA_BASE/bin or in CATALINA_HOME/bin directory

Apache Tomcat 9 security Fixes

You can get all security fixes from here

In case of any ©Copyright or missing credits issue please check CopyRights page for faster resolutions.

Leave a Reply