03-30 14:15:56.927:ERROR(ActionHandler.java:113)-/ com.jfinal.render.RenderException: java.lang.RuntimeException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at com.jfinal.render.TemplateRender.render(TemplateRender.java:62) at com.jfinal.core.ActionHandler.handle(ActionHandler.java:108) at com.jfinal.plugin.druid.DruidStatViewHandler.handle(DruidStatViewHandler.java:81) at com.jfinal.ext.handler.UrlSkipHandler.handle(UrlSkipHandler.java:46) at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:48) at com.ibdyr.system.i18n.I18nHandler.handle(I18nHandler.java:40) at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:417) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at com.jfinal.template.io.ByteWriter.close(ByteWriter.java:54) at com.jfinal.template.Template.render(Template.java:57) at com.jfinal.render.TemplateRender.render(TemplateRender.java:60) ... 25 more Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:333) at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:748) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:287) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:261) at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:118) at com.jfinal.template.io.ByteWriter.close(ByteWriter.java:51) ... 27 more Caused by: java.io.IOException: Broken pipe 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.java:101) at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:157) at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1184) at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:691) at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:471) at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:409) at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:530) at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:110) at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:189) at org.apache.coyote.Response.doWrite(Response.java:538) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:328) ... 32 more
这个问题本可以不用处理,但为了提升用户体验,还是处理了一下,建议先通过这种办法用上 jfinal 3.4:
http://www.jfinal.com/share/714