我在一个浏览器上使用Server-Sent事件,在后端使用Sping Boot 应用程序。当我关闭客户端时,我得到了下一个异常:
14:35:09.458 [http-nio-8084-exec-25] ERROR o.a.c.c.C.[Tomcat].[localhost] - Exception Processing ErrorPage[errorCode=0, location=/error]
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
我明白这是意料之中的行为;另一方面,我的应用程序工作正常,但是我的日志中充满了这些异常。我猜这是由Tomcat引起的。有没有办法捕获这些异常,或者至少阻止Tomcat将这些异常堆栈跟踪写入日志?我的意思是,不修改Tomcat的代码。
2条答案
按热度按时间fnx2tebb1#
为了防止在日志中出现这种异常,您可以尝试对在客户端上执行推送的代码进行一些更改。下面是我的示例。我听api调用,然后它调用我将套接字推送到客户端。我想您可以理解代码:
在这段代码中,为了防止管道破裂,我添加了注解@ExceptionHandler(IOException.class),并检查异常是否包含管道破裂,然后不向客户端发送消息。
hs1ihplo2#
我知道这个问题已经很老了,但是如果有人还在寻找答案的话,有一些关于如何静音ClientAbortException的博客文章,这样它就不会淹没你的日志。
https://tutorial-academy.com/jersey-workaround-clientabortexception-ioexception/