spring – ClientAbortException来自哪里?

我有一个Spring-Boot应用程序,它在日志中不断显示此错误:

[xec-104] ERROR Exception Processing ErrorPage[errorCode=0,location=/error]
org.apache.catalina.connector.ClientAbortException: java.io.IOException:
Connection reset by peer at
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:340)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:303)
at
org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.j
ava:109) at
com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.j
ava:1048) at
com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:95
3) at
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverte
r.writeInternal(AbstractJackson2HttpMessageConverter.java:285) at
org.springframework.http.converter.AbstractGenericHttpMessageConverter.writ
e(AbstractGenericHttpMessageConverter.java:100) at
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConver
terMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethod
Processor.java:231) at
org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProce
ssor.handleReturnValue(HttpEntityMethodProcessor.java:203) at
org.springframework.web.method.support.HandlerMethodReturnValueHandlerCompo
site.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81) at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandl
erMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:132) at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandler
Adapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandler
Adapter.handleInternal(RequestMappingHandlerAdapter.java:738) at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.han
dle(AbstractHandlerMethodAdapter.java:85) at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ
let.java:963) at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServl
et.java:897) at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkSe
rvlet.java:970) at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.jav
a:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.j
ava:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio
nFilterChain.java:230) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
hain.java:165) at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher
.java:726) at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDi
spatcher.java:471) at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatc
her.java:394) at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatche
r.java:311) at
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:39
5) at
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:25
4) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:17
7) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79
) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav
a:87) at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.jav
a:66) at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtoc
ol.java:802) at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.ja
va:1410) at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java
:49) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1
142) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:
617) at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.j
ava:61) at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:134)
at
org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.ja
va:101) at
org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:157)
at
org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint
.java:1221) at
org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBas
e.java:451) at
org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:4
41) at
org.apache.coyote.http11.Http11OutputBuffer.flushBuffer(Http11OutputBuffer.
java:514) at
org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:2
43) at
org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1495)
at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:284)
at org.apache.coyote.Response.action(Response.java:167)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:336)
… 41 common frames omitted

如您所见,堆栈跟踪不会从我的应用程序中显示任何内容.此异常仅发生在基础结构中.它是什么意思,我该如何重现?另外,我不明白为什么杰克逊在筹码追踪中.我的应用程序中没有任何JSON输出.

最后,我想了解我的应用程序是否存在问题.如果是这样,请修复它.如果没有,我不希望在我的日志中将其作为错误.

编辑:根据要求,这是pom.xml:

最佳答案
这是因为客户端在Tomcat有机会写出响应之前关闭了连接.

此异常的主要实施者往往是“Internet Explorer”,因为它处理资源连接(如下载JavaScript,CSS,图标等);如果它决定它不再需要资源,它会在服务器有机会写出来之前关闭连接.当你在IE中使用Angularjs或其他SPA框架时,我也会看到更多.您将知道它是由IE引起的,因为请求资源路径是资源文件(如前所述).

第二个(或同样?)最常见的罪魁祸首可能是用户在有机会完成加载之前多次刷新页面,或者用户在页面加载完成之前导航.

第三个罪魁祸首,不太常见,但更令人愤怒的是,当你在自己的网络上呼叫服务时.您将在被调用的服务上看到“ClientAbortException”,并在客户端服务上看到“SocketException:connection reset”.原因通常是因为防火墙配置不当.我和我的系统管理员聊过,她说上次发生在我身上的原因是因为在高峰使用期间复制流量太高,所以防火墙无法及时返回数据包.解决方案是在其他重要应用程序的高峰使用期间限制来自特定来源(例如复制)的流量.我想你可以通过模拟大量使用和通过防火墙的流量来复制此错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原理介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。传统事务中回滚点的使...
今天小编给大家分享的是一文解析spring中事务的传播机制,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区别,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Spring Cloud Netfli...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。第一步:整合pom文件,在S...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。List 坑列表 = new ArrayList(2);...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇...
本篇内容主要讲解“Spring中的@Autowired和@Resource注解怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学...
今天小编给大家分享一下SpringSecurity怎么定义多个过滤器链的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家
这篇文章主要介绍“Spring的@Conditional注解怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring的@Con...
这篇文章主要介绍了SpringCloudGateway的熔断限流怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud&nb...
今天小编给大家分享一下怎么使用Spring解决循环依赖问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考
这篇文章主要介绍“Spring事务及传播机制的原理及应用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Sp...
这篇“SpringCloudAlibaba框架实例应用分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价
本篇内容主要讲解“SpringBoot中怎么使用SpringMVC”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习...
这篇文章主要介绍“SpringMVC适配器模式作用范围是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC
这篇“导入SpringCloud依赖失败如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家...
这篇文章主要讲解了“SpringMVC核心DispatcherServlet处理流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来
今天小编给大家分享一下SpringMVCHttpMessageConverter消息转换器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以...
这篇文章主要介绍“Spring框架实现依赖注入的原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring框架...
本篇内容介绍了“Spring单元测试控制Bean注入的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下