Tomcat + Spring 处理 “ClientAbortException” 引发的Broken pipe

Tomcat + Spring 处理 “ClientAbortException” 引发的Broken pipe,第1张

在Tomcat环境中,如果用户端主动放弃了请求,但是服务端尚未处理完成时,Tomcat会抛出一个"ClientAbortException"的 "IOException"。在Spring MVC框架中如何处理它显得有点棘手,这里将会简单说明如何进行处理。

在Spring MVC框架中我们一般会使用 " @ExceptionHandler "的注解来处理异常。通常情况下,异常被转发到一个集中的处理方法中,进行合适的处理后返回给前端。但是出现上图这种情况时,我们就无法再将response信息给返回回去了,因为用户端的请求已经close掉了。

我们在"@ExceptionHandler"方法里面捕捉到IOException且内容为"Broken pipe"的异常后,返回一个`null`给Spring框架,这样框架层面就不会进行任何处理,也就不引发"JasperException"了。

```

@ExceptionHandler(IOExceptionclass)

@ResponseStatus(>

>

GET /tutorials/other/top-20-mysql-best-practices/ >

说白了 就是服务器端接受的用来进行下一步工作的一些参数

>

200   (成功)  服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。    

201   (已创建)  请求成功并且服务器创建了新的资源。    

202   (已接受)  服务器已接受请求,但尚未处理。    

203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。    

204   (无内容)  服务器成功处理了请求,但没有返回任何内容。    

205   (重置内容) 服务器成功处理了请求,但没有返回任何内容。    

206   (部分内容)  服务器成功处理了部分 GET 请求。

404你见过吧  404就是 >

我的理解是ResponseEntity 这个对象专门用来处理请求中返回的 请求状态与请求信息的

场景:前后端分离,页面和后端项目部署在不同服务器,出现请求跨域问题。

原因:CORS:跨来源资源共享(CORS)是一份浏览器技术的规范,提供了 Web 服务从不同网域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 >

当列表为空时,Spring Boot 返回 204 No-Content

我有一个控制器,204-No Content当存储库返回的列表中不存在元素时,它应该返回。在 Spring 中,当我返回一个空列表时,响应状态为200-OK 我找到了一种方法来解决这个设置我的控制器返回 a Response Entity,但是还有另一种方法吗?我不想抛出异常,因为我的用例中的空列表是有意义的,并且不能使用,@ResponseStatus因为在用例中列表也可以包含元素,所以我需要返回200-OK列表。

我使用这种方法解决了,但我想List<Parcela>在我的控制器中返回一个204-No content

@GetMapping(path = "/contratos/{numeroContrato}/parcelas", params = "status")

ResponseEntity<List<Parcela>> filtrarParcelasPorStatus(@PathVariable String documento,

@PathVariable String numeroContrato, @RequestParam StatusParcela status) {

try {

List<Parcela> parcelasFiltradas = veiculosUsecasefiltrarParcelasPorStatus(documento, numeroContrato,

status);

if (parcelasFiltradasisEmpty()) {

return new ResponseEntity<>(>

以上就是关于Tomcat + Spring 处理 “ClientAbortException” 引发的Broken pipe全部的内容,包括:Tomcat + Spring 处理 “ClientAbortException” 引发的Broken pipe、spring mvc-springMVC中的reponseEntity是干什么用的、后端解决前端跨域请求问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9336941.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)