日志拦截器报错Cannot create a session after the response has been committed
错误信息
日志拦截器AppLogInterceptor
在方法处理完成之后,会对操作相关信息如参数、方法名、session信息等内容进行记录。
但是今天有同事开发时报错:
Cannot create a session after the response has been committed
相关代码如下:
public class AppLogInterceptor extends HandlerInterceptorAdapter {@Overridepublic void afterCompletion(HttpServletRequest req, HttpServletResponse resp, Object handler, Exception e)throws Exception {if (handler instanceof HandlerMethod) {HttpSession seesion = request.getSession();}}
}
错误分析
错误原因:
- 在Response响应(
response.getOutputStream()
)之后,才创建Session(request.getSession()
)。 - 而此时已经找不到
Session ID
,所以会报错。
解决办法
在Response响应(response.getOutputStream()
)之前进行Session创建(request.getSession()
)。
比如,在Controller
的方法中添加如下代码:
request.getSession();
日志拦截器报错Cannot create a session after the response has been committed相关推荐
- Struts2 Cannot create a session after the response has been committed 一个不起眼的错误
严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException: Cannot c ...
- Cannot create a session after the response has been committed
有时候在操作Session时,系统会抛出如下异常 java.lang.IllegalStateException: Cannot create a session after the response ...
- Cannot create a session after the response has been committed的处理
情景:在导出excel导出过程中前台提示"正在导出,请稍等...",导出结束后提示信息自动消失. 但导出结束后就报如上错误,不可能相应两次. 解决:主要是判断导出结束的时间点,确认 ...
- 【错误记录】Oboe / AAudio 播放器报错 ( onEventFromServer - AAUDIO_SERVICE_EVENT_DISCONNECTED - FIFO cleared )
文章目录 一.报错信息 二.解决方案 在 Android 8.0 以上的机型中 , Oboe 播放器调用的是 AAudio 播放器 API ; 在 Android 8.0 以上的机型中 , Oboe ...
- java创建请求拦截器_80.简单Retrofit+RxJava+日志拦截器结合使用
1.需要使用到的依赖如下(Retrofit\RxJava\RecyclerView\日志拦截器) //only Retrofit(只用Retrofit联网) implementation 'io.re ...
- Dubbo自定义日志拦截器
前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...
- Dubbo自定义日志拦截器 1
前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...
- 【踩坑日记】springboot项目启动报错error create bean with name
前言 启动springboot项目报错error create bean with name xxx 以为是哪个bean没有装配上,排查了所有的bean,发现都装配了 原因分析 仔细看了报错日志,发现 ...
- WebServices中使用cxf开发日志拦截器以及自定义拦截器
首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截 ...
最新文章
- 字节跳动的5条远程办公最佳实践
- 11210怎么等于24_【Python】鸡兔同笼怎么“妙解”?
- python 多进程全局变量
- C#中float怎样保留两位小数?
- java取整公式,Java取整函数 四舍五入函数-Go语言中文社区
- e300氛围灯哪里调节_黑色的奔驰E300有了亚光膜的加持 一出场就惊艳四座
- 人工神经网络之Python 实战
- java p39课后答案_面向对象程序设计(JAVA)答案
- 【js特效】一款不错的flash视频播放器
- NTC——热敏电阻的采集方法
- Java 汉字转拼音(完美支持解决多音字)
- Android控件——TextView与EditText
- 动态规划法 第5关:矩阵连乘问题
- python 网络编程 day02
- mysql导入错误1148,将CSV导入MySQL表会返回错误#1148
- 命名实体如何进行概念消歧?
- 论文详读:Beyond Brightening Low-light Images (Kind++)
- 抖音素材哪里下-抖音素材哪里找-短视频素材库
- 【阅读笔记】后真相时代的竞争性真相
- 用PHP写PHP扩展-Another way writing php extensions
热门文章
- 最韵味的日历软件Rainlendar
- java回调函数的生命_indexDB出坑指南
- Qt designer设置窗口背景图
- 04-Vue的事件机制
- 火影忍者android转ios,火影忍者手游:iOS和安卓实现大部分互通,但决斗场仍然是个痛!...
- 如何在jquery each循环使用continue或者break中断循环?
- 安卓插件化开发!我的头条面试经历分享,含爱奇艺,小米,腾讯,阿里
- SWIT2019无线通信和信息技术国际研讨会(上海)
- 干货分享 | 挖到3款好用的配音软件,短视频配音超省心
- think php getfield,getField如何在ThinkPHP项目中使用