由于项目安全升级,需要升级到最新的 tomca10.1.0-M17 ,之前的服务放到新的 tomcat 启动失败,
严重 [main] org.apache.catalina.core.StandardContext.listenerStart 配置应用程序监听器[org.springframework.web.util.WebAppRootListen
er]错误
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
于是我把 javax 的包也放到 tomcat 的 lib 下,然后看了下 tomcat 这个版本需要使用到 Jakarta 6.0 的版本。我也在对应的 build.gradle 将所有的 javax 的依赖换成了最新的 Jakarta 版本。 然后启动又报错
java.lang.ClassCastException: class org.springframework.web.filter.CharacterEncodingFilter cannot be cast to class jakarta.servlet.Filter
我发现 spring 的 WEN-INF 下的 web.xml 配置了 org.springframework.web.filter.CharacterEncodingFilter,这个 CharacterEncodingFilter 类是 spring 的,它依赖的是 javax 的包。
这个问题我看了两天 也不知道怎么解决。我怀疑是 tomcat 启动使用的 Jakarta ,但是 spring 项目 CharacterEncodingFilter 使用的 javax 冲突了。但是不知道怎么处理 麻烦各位老哥了。