Springboot视频接口报大量的ClientAbortException找不到原因的解决

 更新时间:2023年08月04日 08:24:22   作者:学习使我快乐——玉祥  
本文主要介绍了Springboot视频接口报大量的ClientAbortException找不到原因的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

浏览器有自己的缓冲策略,比如视频接口吐出了100MB的视频数据,浏览器可不会全部拿走,而是按需去拿,

举个例子,浏览器拿的视频数据够看半分钟的,就停止读取数据了,但是http连接并未断开,因为这半分钟看完还要再去读取数据。

springboot视频接口向响应流写入100MB数据,并不是直接写入了http响应体中返回,而是写入了一个缓冲区,缓冲区再一点点输出。如下就是缓冲区的那个类:

org.apache.catalina.connector.OutputBuffer

调用了里面这个方法,先检测连接没断开,然后检测缓冲区还有数据,最后响应输出数据。

浏览器停止接收时,springboot发现输出不了数据,主动抛出了这个异常。 

这样做可能是希望让上层应用自己拦截处理,但目前这个视频播放场景,因为有了缓冲区,所以该异常不会导致视频数据丢失,不影响视频播放,不需要关注这个异常,因此建立全局的异常拦截器屏蔽就好了。

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
    @ExceptionHandler(ClientAbortException.class)
    public void handleClientAbortException(ClientAbortException e){}
}

到此这篇关于Springboot视频接口报大量的ClientAbortException找不到原因的解决的文章就介绍到这了,更多相关Springboot ClientAbortException找不到原因内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JDK集合源码之解析TreeMap(二)

    JDK集合源码之解析TreeMap(二)

    下面小编就为大家带来一篇浅谈java中的TreeMap 排序与TreeSet 排序。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-07-07
  • 使用feign配置网络ip代理

    使用feign配置网络ip代理

    这篇文章主要介绍了使用feign配置网络ip代理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java中的FutureTask源码解析

    Java中的FutureTask源码解析

    这篇文章主要介绍了Java中的FutureTask源码解析,FutureTask是一个可取消的异步计算,这个类是Future的实现类,有开始和取消一个计算的方法,如果一个计算已经完成可以查看结果,需要的朋友可以参考下
    2023-12-12
  • Java Arrays.sort和Collections.sort排序实现原理解析

    Java Arrays.sort和Collections.sort排序实现原理解析

    这篇文章主要介绍了Java Arrays.sort和Collections.sort排序实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • SpringBoot中使用EasyExcel并行导出多个excel文件并压缩zip后下载的代码详解

    SpringBoot中使用EasyExcel并行导出多个excel文件并压缩zip后下载的代码详解

    SpringBoot的同步导出方式中,服务器会阻塞直到Excel文件生成完毕,在处理大量数据的导出功能,本文给大家介绍了SpringBoot中使用EasyExcel并行导出多个excel文件并压缩zip后下载,需要的朋友可以参考下
    2024-09-09
  • Spring session redis 修改默认的序列化方法(案例)

    Spring session redis 修改默认的序列化方法(案例)

    这篇文章主要介绍了Spring session redis 修改默认的序列化方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Java 如何绕过迭代器遍历时的数据修改异常

    Java 如何绕过迭代器遍历时的数据修改异常

    这篇文章主要介绍了Java 绕过迭代器遍历时的数据修改异常的方法,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-02-02
  • Java中Map的九种遍历方式总结

    Java中Map的九种遍历方式总结

    日常工作中 Map 绝对是我们 Java 程序员高频使用的一种数据结构,那 Map 都有哪些遍历方式呢?这篇文章就带大家看一下,看看你经常使用的是哪一种
    2022-11-11
  • 关于SHA算法原理与常用实现方式

    关于SHA算法原理与常用实现方式

    这篇文章主要介绍了关于SHA算法原理与常用实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java泛型T,E,K,V,N,?与Object区别和含义

    Java泛型T,E,K,V,N,?与Object区别和含义

    Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。本文将详细讲讲Java泛型T、E、K、V、N、?和Object区别和含义,需要发可以参考一下
    2022-03-03

最新评论