什么是与 tomcat 10 兼容的 spring-web 模块

问题描述

与tomcat 10兼容的spring-web模块版本是什么?

Spring Web 应用程序在 tomcat 9.x 上运行,但使用 jakarta API 时因 ClassCastException 和 tomcat 10 而失败。

java.lang.classCastException: org.springframework.web.filter.DelegatingFilterProxy 不能转换为 jakarta.servlet.Filter

解决方法

目前没有,Spring 5 版本都不支持 Jakarta 包。 然而他们确实说在版本 6 中他们会,但现在它支持 Javax 包。 可能有一些解决方法,我知道我必须测试 Spring 4 是否适用于 JDK11,确实如此,但 Spring 建议将 Spring 5 用于 JDK11。

对于 Spring MVC 5,Spring MVC DispatcherServlet 依赖于 javax.servlet.* 包命名空间。这是使用 Java EE 8 javax 包命名。由于 Tomcat 10 基于 Jakarta EE 9,因此不支持用于 javax 命名的包。这就解释了为什么 Spring MVC 5 在 Tomcat 10 上不起作用。

https://github.com/spring-projects/spring-boot/issues/25276

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...