- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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
如您所见,堆栈跟踪没有显示我的应用程序的任何内容。此异常纯粹发生在基础设施中。这是什么意思,我该如何重现?另外,我不明白为什么堆栈跟踪中有 Jackson。我的应用程序中没有任何 JSON 输出。
最后我想知道我的申请是否有问题。如果是这样,请修复它。如果不是,我不想在我的日志中将其作为错误。
编辑:根据要求,这是 pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.mixclouddownload</groupId>
<artifactId>downloader</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
</parent>
<properties>
<java-version>1.8</java-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>net.bull.javamelody</groupId>
<artifactId>javamelody-core</artifactId>
<version>1.63.0</version>
</dependency>
<dependency>
<groupId>net.sf.jtidy</groupId>
<artifactId>jtidy</artifactId>
<version>r938</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.0.0-alpha.6</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>font-awesome</artifactId>
<version>4.7.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>58.2</version>
</dependency>
<dependency>
<groupId>org.webjars.bower</groupId>
<artifactId>bootstrap-social</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>4.0.6</version>
</dependency>
<dependency>
<groupId>org.facebook4j</groupId>
<artifactId>facebook4j-core</artifactId>
<version>2.4.8</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<dependency>
<groupId>ca.pjer</groupId>
<artifactId>logback-awslogs-appender</artifactId>
<version>0.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
最佳答案
这是因为客户端在 Tomcat 有机会写出响应之前关闭连接。
此异常的主要肇事者往往是“Internet Explorer”,因为它处理资源连接的方式(如下载 JavaScript、css、图标等);如果它决定它不再需要该资源,它会在服务器有机会写出它之前关闭连接。当您在 IE 中使用 Angularjs 或其他 SPA 框架时,我也会更多地看到它。你会知道它是由 IE 引起的,因为请求资源路径是一个资源文件(如前所述)。
第二个(或同样?)最常见的罪魁祸首可能是用户在页面有机会完成加载之前多次刷新页面,或者用户在页面完成加载之前导航离开。
第三个罪魁祸首,不太常见但更令人恼火的是,当您在自己的网络上调用服务时。您将在调用的服务上看到“ClientAbortException”,在客户端服务上看到“SocketException:连接重置”。原因通常是因为防火墙配置不当。我和我的系统管理员谈过,她说上次发生在我身上是因为在使用高峰期复制流量太大,所以防火墙无法及时返回数据包。解决方案是在其他重要应用程序的高峰使用期间限制来自特定来源(例如复制)的流量。我想您可以通过模拟大量使用和通过防火墙的流量来重现此错误。
关于spring - 这个 ClientAbortException 是从哪里来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41752535/
有一个 servlet 代码用于将 excel/zip 文件从生产服务器下载到本地计算机。当我单击生产服务器上的“保存”或“打开”按钮时,它会抛出 ClientAbortException。相同的代码
我的日志中不断出现此异常,这会影响性能: ClientAbortException: java.net.SocketException: Software caused connection abor
因此,当用户取消对托管在 Tomcat 应用程序服务器上的 Web 应用程序的请求时,我会收到以下异常,并通过 Maven 处理依赖项管理: ClientAbortException: java.n
我正在编写一个下载文件 Controller 有时用户会在文件完全写入之前关闭浏览器窗口。 - 这很酷。 问题是我的日志中充满了这个错误: org.apache.catalina.connector.
我有一个 Spring-Boot 应用程序,它不断地在其日志中显示此错误: [xec-104] ERROR Exception Processing ErrorPage[errorCode=0, lo
当我尝试从服务器流式传输视频文件时,我遇到了 servlet 的这个问题。服务器文件的代码 if (contentType == null) { contentType = "
我正在使用一个 SimpleMappingExceptionResolver,它将所有异常发送到一个很好地呈现它的 View 。除了一种情况外,这有效:如果用户请求一个页面,然后发送并“中止”(我不知
有一个 Web 应用程序,其中发送 SOAP 请求并接收其 SOAP 响应。 发生的事情是在成功获得 SOAP 响应后,我们尝试通过以下代码包含显示页面: 1. RequestDispatcher r
每当客户端中止连接时,我都会收到一个 ClientAbortException 记录如下: org.apache.catalina.connector.ClientAbortException: ja
This question already has answers here: Official reasons for “Software caused connection abort: sock
我的 Web 应用程序连接到 API 以从数据库获取数据。通过浏览器访问页面有时会正确加载数据,但有时会抛出连接重置异常。这种情况间歇性地发生。 大多数情况下首次加载不起作用,但刷新/重新加载页面可以
阅读 pdf 任何帮助时出现此错误。我使用链接来阅读 PDF 文件 ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfReade
我正在尝试编写一个基于 java-servlet 的小型 Web 代理。该代理有只有一项任务: HTML 应传递到发送请求的客户端(目标端口 80 的 GET 请求将根据防火墙规则重新路由到代理)。
我使用的是 MySQL 5.1,我的连接器版本是 mysql-connector-java-5.1.7。我经常遇到异常。什么问题? Dec 24, 2009 10:29:20 AM org.apach
我有一个服务客户端在我的另一个服务上调用 restful 端点。客户端收到“SocketException:连接重置”异常,而主机服务抛出“IOException:APR 错误:-730054”(或者
我在 Jboss 上部署的应用程序有以下异常,浏览器是 IE8 2012-03-19 09:17:12,014 WARN [org.apache.catalina.core.ContainerBas
我在我的 Web 应用程序中使用 Jersey 2.13 来异步检索数据。在某些情况下,请求需要一些时间(即执行复杂报告时),直到它们的响应返回给客户端。 当客户端不等待异步响应(离开页面、关闭浏览器
我想捕获并忽略以下 tomcat ClientAbortException。因为我的程序不需要关注这个。 知道如何以及在何处捕获此异常吗?以下是异常(exception)情况: 14:46:43.92
这个问题在这里已经有了答案: java.net.SocketException: Connection reset (14 个答案) 关闭 6 年前。 从数据库列中检索文件对象时,我经常遇到以下错误
我正在尝试编写一个位于 Linux 服务器上的 java servlet,客户端可以使用它来下载视频文件。当文件大小较小(可能小于 2 MB)时它可以工作,但较大的文件大小会返回错误:org.apac
我是一名优秀的程序员,十分优秀!