我有一个Glassfish服务器3.1.2,它有一些mp4文件。
现在,当谷歌浏览器请求某些视频时,服务器会挂起,并且对服务器的任何后续请求都会失败。
关闭客户端浏览器(Chrome)后,服务器将恢复。
我在这里有一个博客 - blog.nvoids.in,它有一些mp4文件。
从Chrome访问网站时,服务器挂起,因为mp4文件基于Glassfish服务器。
服务器上的日志显示 -
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Client is busy or timed out
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:430)
at com.sun.grizzly.util.buf.ByteChunk.flushBuffer(ByteChunk.java:458)
at com.sun.grizzly.util.buf.ByteChunk.append(ByteChunk.java:380)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:455)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:442)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:160)
at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2365)
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:2100)
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1090)
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:466)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at newa.StoreImage.doFilter(StoreImage.java:100)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at newa.CEFilter.doFilter(CEFilter.java:193)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Client is busy or timed out
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:129)
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:76)
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushChannel(SocketChannelOutputBuffer.java:426)
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:498)
at com.sun.grizzly.http.SocketChannelOutputBuffer.realWriteBytes0(SocketChannelOutputBuffer.java:382)
at com.sun.grizzly.http.SocketChannelOutputBuffer.realWriteBytes(SocketChannelOutputBuffer.java:364)
at com.sun.grizzly.tcp.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite
(InternalOutputBuffer.java:894)
at com.sun.grizzly.tcp.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:159)
at com.sun.grizzly.tcp.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:661)
at com.sun.grizzly.tcp.Response.doWrite(Response.java:685)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:425)
... 43 more
|#]
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:430)|#]
at com.sun.grizzly.util.buf.ByteChunk.flushBuffer(ByteChunk.java:458)|#]
at com.sun.grizzly.util.buf.ByteChunk.append(ByteChunk.java:380)|#]
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:455)|#]
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:442)|#]
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:160)|#]
at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2365)|#]
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:2100)|#]
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1090)|#]
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:466)|#]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)|#]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)|#]
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)|#]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)|#]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)|#]
at newa.StoreImage.doFilter(StoreImage.java:100)|#]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)|#]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)|#]
at newa.CEFilter.doFilter(CEFilter.java:193)|#]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)|#]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)|#]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)|#]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)|#]
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)|#]
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)|#]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)|#]
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)|#]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)|#]
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)|#]
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)|#]
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)|#]
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)|#]
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)|#]
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)|#]
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)|#]
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)|#]
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)|#]
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)|#]
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)|#]
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)|#]
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)|#]
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)|#]
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)|#]
at java.lang.Thread.run(Thread.java:745)|#]
Caused by: java.io.IOException: Client is busy or timed out|#]
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:129)|#]
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:76)|#]
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushChannel(SocketChannelOutputBuffer.java:426)|#]
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:498)|#]
at com.sun.grizzly.http.SocketChannelOutputBuffer.realWriteBytes0(SocketChannelOutputBuffer.java:382)|#]
at com.sun.grizzly.http.SocketChannelOutputBuffer.realWriteBytes(SocketChannelOutputBuffer.java:364)|#]
at com.sun.grizzly.tcp.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite
(InternalOutputBuffer.java:894)|#]
at com.sun.grizzly.tcp.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:159)|#]
at com.sun.grizzly.tcp.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:661)|#]
at com.sun.grizzly.tcp.Response.doWrite(Response.java:685)|#]
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:425)|#]
... 43 more|#]