问题描述
与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 上不起作用。