今天梳理整合ssm时,发现出现了404错误,还以为是自己路径输入错误,结果检查返现不是,在tomcatLocalhostLog打印出强制转换异常:
org.apache.catalina.core.StandardWrapperValve.invoke 分配异常的servlet [characterEncodingFilter] java.lang.ClassCastException:
org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Servlet
于是可以定位到是我的乱码过滤器配置出了问题,如下:
细看才发现原来是我写错了,这个是监听器应该放在标签里而不是里面
这里还有另外一个强制转换异常问题(就是版本问题)!!!,
java.lang.ClassCastException: class org.springframework.web.filter.CharacterEncodingFilter cannot be cast to class jakarta.servlet.filter
后来我去查了一下,发现是我的tomcat10版本太高了,tomcat10将javax.servlet 都改为了jakarta.servlet,以后的tomcat10所有的包都换成jakarta包括maven坐标,但是web.xml由于这里集成别人写的所以无法更改,于是我把tomcat10——》tomcat9,jdk换成1.8然后就好了。