springboot 错误记录

摘要:
Objecthandler)引发异常{//此处报告了HandlerMethodhandlerMethod=(HandlerMethod)handler错误;但是,如果控制器中没有相应的请求,则该请求将被视为对静态资源的请求。

1.拦截器中handler cannot be cast to HandlerMethod

java.lang.ClassCastException: org.springframework.web.servlet.resource.ResourceHttpRequestHandler cannot be cast to org.springframework.web.method.HandlerMethod
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) throws Exception {
            //此处报错
            HandlerMethod handlerMethod = (HandlerMethod) handler;
    }

原因就在于,spring boot 2.0对静态资源也进行了拦截,当拦截器拦截到请求之后,但controller里并没有对应的请求时,该请求会被当成是对静态资源的请求。此时的handler就是 ResourceHttpRequestHandler,就会抛出上述错误。

解决办法:

1.拦截器那里排除静态资源的请求路径

registry.addInterceptor(new MyInterceptor()).addPathPatterns("/xx/**")
                .excludePathPatterns("/xx/**");

2. instanceof关键字进行判断。

if(handler instanceof ResourceHttpRequestHandler) {
                logger.info("---------ResourceHttpRequestHandler-------" + handler.toString() + "------------");
            }else if(handler instanceof HandlerMethod){
                logger.info("--------HandlerMethod--------" + handler.toString() + "------------");
            }

免责声明:文章转载自《springboot 错误记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】moodle中年级、班级、小组研讨Linux版本内核及安装后的简单操作命令介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Webview 与h5的交互

步骤:H5代码   <html>   <head>   <meta charset="UTF-8">   <title>交互Demo</title>   <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,wid...

子线程更新UI界面的2种方法

一、一般我们都会在子线程完成一些耗时的操作。 1、Android中消息机制: 2、知识点: Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message m...

自动化运维工具puppet详解(一)

一、puppet 介绍   1、puppet是什么   puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning)、配置(configuration)、联动(orchestration)及报告(reporting)。  基于puppet ,可实现自动化重复任务、快速部署关键性应用以及在本...

在PaaS上开发Web、移动应用(2)

在PaaS上开发Web、移动应用(2) PaaS学习笔记目录 PaaS基础学习(1) 在PaaS上开发Web、移动应用(2) PaaS优点与限制(3) 6. 巨型代码,是指持续不断地向一个应用程序添加功能,不停地增加新的特性如搜索功能、账户管理、博客发布等。 在开发速度以及在适应扩展需求的总体架构之间进行权衡。 新技术的面向服务架构(SOA)在Web应...

关于springMVC

一 mvc设计模式 MVC 全名是 Model View Controller,是 模型(model)-视图(view)-控制器(controller) 的缩写, 是⼀种⽤于设计创建 Web 应⽤程序表现层的模式。 MVC 中每个部分各司其职:Model(模型):模型包含业务模型和数据模型,数据模型⽤于封装数据,业务模型⽤于处理业务。View(视图): 通...

Android中Message机制的灵活应用

转自:http://qaohao.iteye.com/blog/509145 1.活用Android线程间通信的Message机制 1.1.Message 代码在frameworks\base\core\java\android\Os\Message.java中。 Message.obtain函数:有多个obtain函数,主要功能一样,只是参数不一样。...