错误信息

日志拦截器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相关推荐

  1. Struts2 Cannot create a session after the response has been committed 一个不起眼的错误

    严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException:  Cannot c ...

  2. Cannot create a session after the response has been committed

    有时候在操作Session时,系统会抛出如下异常 java.lang.IllegalStateException: Cannot create a session after the response ...

  3. Cannot create a session after the response has been committed的处理

    情景:在导出excel导出过程中前台提示"正在导出,请稍等...",导出结束后提示信息自动消失. 但导出结束后就报如上错误,不可能相应两次. 解决:主要是判断导出结束的时间点,确认 ...

  4. 【错误记录】Oboe / AAudio 播放器报错 ( onEventFromServer - AAUDIO_SERVICE_EVENT_DISCONNECTED - FIFO cleared )

    文章目录 一.报错信息 二.解决方案 在 Android 8.0 以上的机型中 , Oboe 播放器调用的是 AAudio 播放器 API ; 在 Android 8.0 以上的机型中 , Oboe ...

  5. java创建请求拦截器_80.简单Retrofit+RxJava+日志拦截器结合使用

    1.需要使用到的依赖如下(Retrofit\RxJava\RecyclerView\日志拦截器) //only Retrofit(只用Retrofit联网) implementation 'io.re ...

  6. Dubbo自定义日志拦截器

    前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...

  7. Dubbo自定义日志拦截器 1

    前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...

  8. 【踩坑日记】springboot项目启动报错error create bean with name

    前言 启动springboot项目报错error create bean with name xxx 以为是哪个bean没有装配上,排查了所有的bean,发现都装配了 原因分析 仔细看了报错日志,发现 ...

  9. WebServices中使用cxf开发日志拦截器以及自定义拦截器

    首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截 ...

最新文章

  1. 字节跳动的5条远程办公最佳实践
  2. 11210怎么等于24_【Python】鸡兔同笼怎么“妙解”?
  3. python 多进程全局变量
  4. C#中float怎样保留两位小数?
  5. java取整公式,Java取整函数 四舍五入函数-Go语言中文社区
  6. e300氛围灯哪里调节_黑色的奔驰E300有了亚光膜的加持 一出场就惊艳四座
  7. 人工神经网络之Python 实战
  8. java p39课后答案_面向对象程序设计(JAVA)答案
  9. 【js特效】一款不错的flash视频播放器
  10. NTC——热敏电阻的采集方法
  11. Java 汉字转拼音(完美支持解决多音字)
  12. Android控件——TextView与EditText
  13. 动态规划法 第5关:矩阵连乘问题
  14. python 网络编程 day02
  15. mysql导入错误1148,将CSV导入MySQL表会返回错误#1148
  16. 命名实体如何进行概念消歧?
  17. 论文详读:Beyond Brightening Low-light Images (Kind++)
  18. 抖音素材哪里下-抖音素材哪里找-短视频素材库
  19. 【阅读笔记】后真相时代的竞争性真相
  20. 用PHP写PHP扩展-Another way writing php extensions

热门文章

  1. 最韵味的日历软件Rainlendar
  2. java回调函数的生命_indexDB出坑指南
  3. Qt designer设置窗口背景图
  4. 04-Vue的事件机制
  5. 火影忍者android转ios,火影忍者手游:iOS和安卓实现大部分互通,但决斗场仍然是个痛!...
  6. 如何在jquery each循环使用continue或者break中断循环?
  7. 安卓插件化开发!我的头条面试经历分享,含爱奇艺,小米,腾讯,阿里
  8. SWIT2019无线通信和信息技术国际研讨会(上海)
  9. 干货分享 | 挖到3款好用的配音软件,短视频配音超省心
  10. think php getfield,getField如何在ThinkPHP项目中使用