2017-01-19 4 views
1

У меня есть приложение Spring-загрузки, который постоянно показывает эту ошибку в своих журналах:Откуда возникает это ClientAbortException?

[XEC-104] ERROR Exception Processing ErrorPage [ERRORCODE = 0, расположение =/ошибка] org.apache.catalina .connector.ClientAbortException: java.io.IOException: Соединение сбрасывается равным org.apache.catalina.connector.OutputBuffer.doFlush (OutputBuffer.java:340) at org.apache.catalina.connector.OutputBuffer.flush (OutputBuffer.java:303) по адресу org.apache.catalina.connector.CoyoteOutputStream.flush (CoyoteOutputStream.j ava: 109) at com.fasterxml.j ackson.core.json.UTF8JsonGenerator.flush (UTF8JsonGenerator.j AVA: 1048) на com.fasterxml.jackson.databind.ObjectWriter.writeValue (ObjectWriter.java:95 3) при org.springframework.http.converter. json.AbstractJackson2HttpMessageConverte r.writeInternal (AbstractJackson2HttpMessageConverter.java:285) при org.springframework.http.converter.AbstractGenericHttpMessageConverter.writ е (AbstractGenericHttpMessageConverter.java:100) при org.springframework.web.servlet.mvc.method. annotation.AbstractMessageConver terMethodProcessor.writeWithMessageConverters (AbstractMessageConverterMethod Processor.java:231) в org.springframework.web.servlet.mvc.method.anno tation.HttpEntityMethodProce ssor.handleReturnValue (HttpEntityMethodProcessor.java:203) при org.springframework.web.method.support.HandlerMethodReturnValueHandlerCompo site.handleReturnValue (HandlerMethodReturnValueHandlerComposite.java:81) в org.springframework.web.servlet.mvc. method.annotation.ServletInvocableHandl erMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:132) при org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandler Adapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:827) в org.springframework. web.servlet.mvc.method.annotation.RequestMappingHandler Adapter.handleInternal (RequestMappingHandlerAdapter.java:738) в org.sp ringframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.han СКД (AbstractHandlerMethodAdapter.java:85) при org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServ let.java:963) при org.springframework. web.servlet.DispatcherServlet.doService (DispatcherServl et.java:897) при org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkSe rvlet.java:970) в org.springframework.web.servlet.FrameworkServlet. doGet (FrameworkServlet.jav а: 861) в javax.servlet.http.HttpServlet.service (HttpServlet.java:622) на org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.j AVA: 846) в javax.servlet.http.HttpServlet.service (HttpServlet.java:729) на org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (аппликации nFilterChain.java:230) при org.apache .catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterC hain.java:165) при org.apache.catalina.core.ApplicationDispatcher.invoke (ApplicationDispatcher .java: 726) в org.apache.catalina.core.ApplicationDispatcher. processRequest (ApplicationDi ).org.apache.catalina.core.ApplicationDispatcher.doForward (ApplicationDispatc ее.Java: 394) на org.apache.catalina.core.ApplicationDispatcher.forward (ApplicationDispatche r.java:311) при org.apache.catalina.core.StandardHostValve.custom (StandardHostValve.java:39 5) при org.apache.catalina.core.StandardHostValve.status (StandardHostValve.java:25 4) при org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:17 7) при org.apache.catalina. valves.ErrorReportValve.invoke (ErrorReportValve.java:79 ) при org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.jav а: 87) на org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter .ja ва: 349) на org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:784) на org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.jav а: 66) в орг. apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtoc ol.java:802) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.ja ва: 1410) в org.apache. tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java : 49) при java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1 142) на java.util.concurrent.ThreadPoo lExecutor $ Worker.run (ThreadPoolExecutor.java: 617) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.j ava: 61) в java.lang.Thread.run (Thread. java: 745) Вызвано: java.io.IOException: соединение сброшено равным на sun.nio.ch.FileDispatcherImpl.write0 (собственный метод) at sun.nio.ch.SocketDispatcher.write (SocketDispatcher.java:47)) на sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93) в sun.nio.ch.IOUtil.write (IOUtil.java:65) в sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl .java: 471) at org.apache.tomcat.util.net.NioChannel.write (NioChannel.java:134) по адресу org.apache.tomcat.util. net.NioBlockingSelector.write (NioBlockingSelector.ja ва: 101) на org.apache.tomcat.util.net.NioSelectorPool.write (NioSelectorPool.java:157) на org.apache.tomcat.util.net.NioEndpoint $ NioSocketWrapper.doWrite (NioEndpoint .java: 1221) при org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking (SocketWrapperBas e.java:451) при org.apache.tomcat.util.net.SocketWrapperBase. flush (SocketWrapperBase.java:4 41) на org.apache.coyote.http11.Http11OutputBuffer.flushBuffer (Http11OutputBuffer. Java: 514) на org.apache.coyote.http11.Http11OutputBuffer.flush (Http11OutputBuffer.java:2 43) в org.apache.coyote.http11.Http11Processor.flush (Http11Processor.java:1495) в орг .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 общие рамки опущены

Как вы можете видеть, трассировка стека ничего не обнаруживает из моего приложения. Это исключение происходит исключительно в инфраструктуре. Что это значит и как я могу воспроизвести это? Кроме того, я не понимаю, почему Джексон в трассировке стека. У меня нет ни одного выхода JSON в моем приложении.

В конце я хочу понять, есть ли в моем приложении проблема. Если это так, исправьте это. Если нет, я не хочу, чтобы это было в моем журнале как ОШИБКА.

Редактировать: В соответствии с просьбой, это pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
\t xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
 
\t <modelVersion>4.0.0</modelVersion> 
 
\t <groupId>net.mixclouddownload</groupId> 
 
\t <artifactId>downloader</artifactId> 
 
\t <version>0.0.1-SNAPSHOT</version> 
 

 
\t <parent> 
 
\t \t <groupId>org.springframework.boot</groupId> 
 
\t \t <artifactId>spring-boot-starter-parent</artifactId> 
 
\t \t <version>1.4.3.RELEASE</version> 
 
\t </parent> 
 

 
\t <properties> 
 
\t \t <java-version>1.8</java-version> 
 
\t \t <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
 
\t </properties> 
 

 
\t <dependencies> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t <artifactId>spring-boot-starter-web</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t <artifactId>spring-boot-starter-actuator</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t <artifactId>spring-boot-devtools</artifactId> 
 
\t \t \t <optional>true</optional> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.retry</groupId> 
 
\t \t \t <artifactId>spring-retry</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.aspectj</groupId> 
 
\t \t \t <artifactId>aspectjweaver</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>net.bull.javamelody</groupId> 
 
\t \t \t <artifactId>javamelody-core</artifactId> 
 
\t \t \t <version>1.63.0</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>net.sf.jtidy</groupId> 
 
\t \t \t <artifactId>jtidy</artifactId> 
 
\t \t \t <version>r938</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t <artifactId>spring-boot-starter-thymeleaf</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.webjars</groupId> 
 
\t \t \t <artifactId>bootstrap</artifactId> 
 
\t \t \t <version>4.0.0-alpha.6</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.webjars</groupId> 
 
\t \t \t <artifactId>font-awesome</artifactId> 
 
\t \t \t <version>4.7.0</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>commons-io</groupId> 
 
\t \t \t <artifactId>commons-io</artifactId> 
 
\t \t \t <version>2.5</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>com.ibm.icu</groupId> 
 
\t \t \t <artifactId>icu4j</artifactId> 
 
\t \t \t <version>58.2</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.webjars.bower</groupId> 
 
\t \t \t <artifactId>bootstrap-social</artifactId> 
 
\t \t \t <version>5.0.0</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.apache.httpcomponents</groupId> 
 
\t \t \t <artifactId>httpclient</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.twitter4j</groupId> 
 
\t \t \t <artifactId>twitter4j-core</artifactId> 
 
\t \t \t <version>4.0.6</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.facebook4j</groupId> 
 
\t \t \t <artifactId>facebook4j-core</artifactId> 
 
\t \t \t <version>2.4.8</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>com.google.guava</groupId> 
 
\t \t \t <artifactId>guava</artifactId> 
 
\t \t \t <version>21.0</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t <artifactId>spring-boot-starter-cache</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>javax.cache</groupId> 
 
\t \t \t <artifactId>cache-api</artifactId> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>ca.pjer</groupId> 
 
\t \t \t <artifactId>logback-awslogs-appender</artifactId> 
 
\t \t \t <version>0.1.0</version> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.apache.commons</groupId> 
 
\t \t \t <artifactId>commons-lang3</artifactId> 
 
\t \t \t <version>3.5</version> 
 
\t \t </dependency> 
 

 
\t \t <dependency> 
 
\t \t \t <groupId>junit</groupId> 
 
\t \t \t <artifactId>junit</artifactId> 
 
\t \t \t <scope>test</scope> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.mockito</groupId> 
 
\t \t \t <artifactId>mockito-core</artifactId> 
 
\t \t \t <scope>test</scope> 
 
\t \t </dependency> 
 
\t \t <dependency> 
 
\t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t <artifactId>spring-boot-starter-test</artifactId> 
 
\t \t \t <scope>test</scope> 
 
\t \t </dependency> 
 
\t </dependencies> 
 
\t <build> 
 
\t \t <plugins> 
 
\t \t \t <plugin> 
 
\t \t \t \t <groupId>org.apache.maven.plugins</groupId> 
 
\t \t \t \t <artifactId>maven-compiler-plugin</artifactId> 
 
\t \t \t \t <configuration> 
 
\t \t \t \t \t <source>${java-version}</source> 
 
\t \t \t \t \t <target>${java-version}</target> 
 
\t \t \t \t \t <compilerArgument>-Xlint:all</compilerArgument> 
 
\t \t \t \t \t <showWarnings>true</showWarnings> 
 
\t \t \t \t \t <showDeprecation>true</showDeprecation> 
 
\t \t \t \t </configuration> 
 
\t \t \t </plugin> 
 
\t \t \t <plugin> 
 
\t \t \t \t <groupId>org.springframework.boot</groupId> 
 
\t \t \t \t <artifactId>spring-boot-maven-plugin</artifactId> 
 
\t \t \t \t <configuration> 
 
\t \t \t \t \t <executable>true</executable> 
 
\t \t \t \t </configuration> 
 
\t \t \t </plugin> 
 
\t \t \t <plugin> 
 
\t \t \t \t <groupId>org.apache.maven.plugins</groupId> 
 
\t \t \t \t <artifactId>maven-failsafe-plugin</artifactId> 
 
\t \t \t \t <executions> 
 
\t \t \t \t \t <execution> 
 
\t \t \t \t \t \t <goals> 
 
\t \t \t \t \t \t \t <goal>integration-test</goal> 
 
\t \t \t \t \t \t \t <goal>verify</goal> 
 
\t \t \t \t \t \t </goals> 
 
\t \t \t \t \t </execution> 
 
\t \t \t \t </executions> 
 
\t \t \t </plugin> 
 
\t \t </plugins> 
 
\t </build> 
 
</project>

+0

показать вам pom.xml – Patrick

+0

Ваш клиент прекращает соединение нечисто. Для материала JSON в вашей трассе стека ... вы должны уметь вычислять * что-то * из трассировки стека, чтобы помочь вам понять, почему используется генератор JSON. –

+0

@Patrick Я добавил pom.xml. –

ответ

2

Это вызвано тем, что клиент закрывает соединение до Tomcat имеет возможность выписывать ответ.

Главный виновник этого исключения имеет тенденцию быть «Internet Explorer» из-за того, как он обрабатывает подключения к ресурсам (например, загрузку JavaScript, css, значков и т. Д.); если он решит, что ему больше не нужен ресурс, он закрывает соединение, прежде чем сервер сможет записать его. Я также вижу это больше, когда вы используете Angularjs или другие рамки SPA в IE. Вы узнаете, что это вызвано IE, потому что путь ресурса запроса связан с файлом ресурсов (как описано выше).

Вторым (или одинаково?) Наиболее распространенным преступником могут быть пользователи, обновляющие страницу несколько раз, прежде чем у нее будет возможность закончить загрузку, или пользователь будет перемещаться до завершения загрузки страницы.

Третий виновник, и менее распространенный, но более опасный, когда вы звоните в свою собственную сеть. Вы увидите «ClientAbortException» в вызываемой службе и «SocketException: сброс соединения» в клиентской службе. Причина обычно связана с плохо настроенными брандмауэрами. Я разговаривал с моим системным администратором, и она сказала, что в последний раз это случилось со мной, потому что трафик репликации был слишком высоким во время пикового использования, поэтому брандмауэр не смог вернуть пакет вовремя. Решение заключалось в дросселировании трафика из определенных источников (например, репликации) во время максимального использования других важных приложений. Я полагаю, вы могли бы дублировать эту ошибку, моделируя интенсивное использование и трафик через брандмауэр.

Смежные вопросы