Spring 4 websockets 导致大量异常 [英] Spring 4 websockets causing tons of exceptions
本文介绍了Spring 4 websockets 导致大量异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
自从我们在 Spring 4 中开始使用 websockets 以来,我们的日志中到处都是这个例外:
Ever since we started using websockets in Spring 4, our logs are littered with this exception:
3 ERROR MessageBrokerSockJS-1 handler.XhrStreamingTransportHandler$XhrStreamingSockJsSession:276 - Terminating connection after failure to send message to client. This may be because the client has gone away (see https://java.net/jira/browse/SERVLET_SPEC-44)
Feb 15 12:05:16 apmgui i-04e9bc6a: ClientAbortException: java.net.SocketException: Broken pipe
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:371)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:333)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.catalina.connector.Response.flushBuffer(Response.java:570)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.catalina.connector.ResponseFacade.flushBuffer(ResponseFacade.java:307)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.springframework.http.server.ServletServerHttpResponse.flush(ServletServerHttpResponse.java:81)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.springframework.web.socket.sockjs.transport.session.StreamingSockJsSession.writeFrameInternal(StreamingSockJsSession.java:99)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.writeFrame(AbstractSockJsSession.java:273)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.sendHeartbeat(AbstractSockJsSession.java:294)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession$1.run(AbstractSockJsSession.java:309)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.FutureTask.run(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.lang.Thread.run(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: Caused by: java.net.SocketException: Broken pipe
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.net.SocketOutputStream.socketWrite0(Native Method)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.net.SocketOutputStream.socketWrite(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at java.net.SocketOutputStream.write(Unknown Source)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:119)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:805)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.coyote.Response.action(Response.java:174)
Feb 15 12:05:16 apmgui i-04e9bc6a: at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:366)
Feb 15 12:05:16 apmgui i-04e9bc6a: ... 17 more
我们可以做些什么来防止这种情况发生?
What can we do to prevent this?
推荐答案
现在在 Spring Framework 中讨论和跟踪 https://jira.springsource.org/browse/SPR-11438.
This is now discussed and tracked in the Spring Framework https://jira.springsource.org/browse/SPR-11438.
这篇关于Spring 4 websockets 导致大量异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文