Version Matrix
Tomcat Version Minimum Java Recommended Java Specification / Servlet Support Package Namespace Lifecycle Status
Tomcat 11.0.x Java 17 Java 21 LTS / 25 Jakarta EE 11 (Servlet 6.1, JSP 4.0, EL 6.0, WebSocket 2.2) jakarta.* Active / Latest
Tomcat 10.1.x Java 11 Java 17 LTS / 21 LTS Jakarta EE 10 (Servlet 6.0, JSP 3.1, EL 5.0, WebSocket 2.1) jakarta.* Long-Term Production
Tomcat 10.0.x Java 8 Java 11 LTS Jakarta EE 9 (Servlet 5.0, JSP 3.0) - Migration Bridge jakarta.* End of Life (EOL)
Tomcat 9.0.x Java 8 Java 11 LTS / 17 LTS Java EE 8 (Servlet 4.0, JSP 2.3, EL 3.0, WebSocket 1.1) javax.* Maintenance Mode
Tomcat 8.5.x Java 7 Java 8 / 11 Java EE 7 (Servlet 3.1, JSP 2.3) javax.* End of Life (March 2024)

Critical Migration Guide: javax.* to jakarta.* Namespace

When migrating from Tomcat 9 (or older) to Tomcat 10.1 / 11, the underlying package namespace changes from javax.servlet.* to jakarta.servlet.*.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>
Automated Migration Tool: For legacy WAR files that cannot be recompiled, use the Apache Tomcat Migration Tool for Jakarta EE (jakartaee-migration-*.jar) to transpile bytecode automatically.