
在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是干什么用的、后端解决前端跨域请求问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)