Apache Tomcat 9 Application Server Quick Review
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)
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.
D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin>version.bat 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% D:\Programs\apache-tomcat-9.0.0.M17\apache-tomcat-9.0.0.M17\bin>version.bat 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: 9.0.0.0 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.
Can we see an review on Wildfly too please?