博主文章分类:
SpringBoot
springboot
阅读数
161
spring 拦截器请求类型异常:java.lang.ClassCastException: org.springframework.web.servlet.resource.ResourceHttpRequestHandler cannot be cast to org.springframework.web.method.HandlerMethod
报错代码
// 此处报错
HandlerMethod handlerMethod = (HandlerMethod) handler;
报错原因
spring boot 2.0 对静态资源也进行了拦截,当拦截器拦截到请求之后,但 controller 里并没有对应的请求时,该请求会被当成是对静态资源的请求。此时的 handler 就是 ResourceHttpRequestHandler,就会抛出上述错误。
解决方法
方法1:
加上
instanceof
判断
if (handler instanceof HandlerMethod) {
方法2:
不处理,因为请求的资源不存在