javaspringtomcatservlets

Does Tomcat 11 support Spring 6.1?


I know that Tomcat 11 supports servlet spec 6.1, but does it support olders as well?

Also, I'm not sure about the relationships between servlet specs and Spring versions. https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions lists something called Jakarta EE versions -- how are these related to servlet specs?


Solution

  • Tomcat 11 is designed to support only Servlet 6.1 and Jakarta EE 11 by default, as it implements the Jakarta Servlet 6.1 specification. Release notes.

    However, Tomcat is generally backward compatible with older Servlet API versions. This means that if you deploy an application that targets an older Servlet specification (e.g., Servlet 5.0), it may still work with Tomcat 11, but there could be issues related to namespace changes, as Tomcat 11 has fully moved to the jakarta.servlet namespace.

    Servlet 5.0 API is under the javax.servlet namespace, following the Java EE conventions, which can cause compatibility issues with Tomcat 11. You would need to refactor older applications (which use javax.servlet) to be compatible with the Jakarta namespace (i.e., jakarta.servlet) to run them on Tomcat 11.