RequestContextHolder.getRequestAttributes()空指针问题及解决

 更新时间:2024年01月18日 09:38:10   作者:nedjie  
这篇文章主要介绍了RequestContextHolder.getRequestAttributes()空指针问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

RequestContextHolder.getRequestAttributes()空指针

现象

HttpServletRequest request =((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

报空指针异常:

java.lang.NullPointerException: null

原因

在代码中开启了子线程,在子线程中写了此段代码。

我这边是由于用了parallelStream,在并行流的业务代码中尝试获取Request。

解析

1、RequestContextHolder.getRequestAttributes()为null

是由于保存requestAttributes的对象是线程隔离的ThreadLocal对象,当http请求发送到服务端时,每个请求会开启一个线程来处理,由RequestContextListener来初始化RequestContextHolder。

RequestContextHolder.setRequestAttributes(attributes);

当开启了子线程时,不会自动调用setRequestAttributes方法,所以从ThreadLocal中获取时为null

2、parallelStream是会开启子线程的,由于上述原因引发了异常

解决

1、由主线程获取,传递给子线程

2、不要用并行流,parallelStream改为stream

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Java SSM项目部署上线配置方法(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)

    详解Java SSM项目部署上线配置方法(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)

    这篇文章主要介绍了Java SSM项目部署上线(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-01-01
  • java利用url实现网页内容的抓取

    java利用url实现网页内容的抓取

    本文主要介绍了java利用url实现网页内容抓取的示例。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java虚拟机的核心原理与工作机制解读

    Java虚拟机的核心原理与工作机制解读

    这篇文章主要介绍了Java虚拟机的核心原理与工作机制,将深入探讨JVM的核心概念、架构、内存模型、垃圾回收机制等内容,帮助你全面掌握JVM的知识
    2025-05-05
  • 基于Java写minio客户端实现上传下载文件

    基于Java写minio客户端实现上传下载文件

    这篇文章主要介绍了基于Java写minio客户端实现上传下载文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 使用Java 实现一个“你画手机猜”的小游戏

    使用Java 实现一个“你画手机猜”的小游戏

    这篇文章主要介绍了使用Java 实现一个“你画手机猜”的小游戏,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Spring Security入门到深入实战步骤详解

    Spring Security入门到深入实战步骤详解

    小明通过学习SpringSecurity,成功为自己的摄影网站添加了完整的登录认证鉴权功能,包括自定义用户存储、权限控制、自定义登录页、JWT集成以及OAuth2第三方登录,并且对SpringSecurity有了深入的理解和认识,喜欢的朋友跟随小编一起学习吧
    2025-11-11
  • idea找不到xxx依赖项的问题及解决方法

    idea找不到xxx依赖项的问题及解决方法

    今天下载这个依赖一直报错,红色,显示错误找不到依赖项,使用了3个步骤,不太明白哪部解决的,下面小编给大家分享idea找不到xxx依赖项的问题及解决方法,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Spring mvc AJAX技术实现原理解析

    Spring mvc AJAX技术实现原理解析

    这篇文章主要介绍了Spring mvc AJAX技术实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 关于@Valid注解大全以及用法规范

    关于@Valid注解大全以及用法规范

    这篇文章主要介绍了关于@Valid注解大全以及用法规范,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 详解Java的面向对象和面向过程

    详解Java的面向对象和面向过程

    我们知道,Java是面向对象的编程语言,但是至今仍有不少同学还不太懂”面向对象“的确切含义,今天这篇文章就带大家真正地认识面向对象,感兴趣的同学可以跟着小编一起来学习
    2023-05-05

最新评论