Tomcat8运行struts2工程发生异常: java.io.IOException: Broken pipe
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
--------------------------------------------------------------------------------------------------------------------------
环境说明:
系统环境为: CentOS [我在windows环境上面并不会出现此问题]
编译环境为: 1.8.0_65-b17
tomcat版本为: Apache Tomcat/8.0.30
tomcat运行模式为: ProtocolHandler [nio] (此处很重要 apr模式和nio模式都会出现此问题)
struts2版本为: 2.3.24.1
工程框架: spring4.1.6 struts2 2.3.24.1 jdbc
---------------------------------------------------------------------------------------------------------------------------
https://issues.apache.org/jira/browse/WW-4386
apache官网上面对这个错误的描述说虽然是个bug 但是这不是一个错误
部署的工程(ps:高并发访问量的网站)也能正常访问 但是会在Catalina.out和日志文件中打印很多日志 导致日志文件过大.担心会出现宕机的情况. 现在的临时解决办法是把这几个打印error的日志文件删除掉让它不输出.
错误日志详细代码:
2016-01-23 06:45:42 ERROR - 发生异常: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:393) ~[catalina.jar:8.0.30]
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:426) ~[tomcat-util.jar:8.0.30]
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:339) ~[tomcat-util.jar:8.0.30]
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:418) ~[catalina.jar:8.0.30]
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:406) ~[catalina.jar:8.0.30]
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97) ~[catalina.jar:8.0.30]
at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2098) ~[catalina.jar:8.0.30]
at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:1941) ~[catalina.jar:8.0.30]
at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:968) ~[catalina.jar:8.0.30]
at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:398) ~[catalina.jar:8.0.30]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[servlet-api.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[servlet-api.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-websocket.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at com.user.xssfilter.SessionUserLoginFilter.doFilter(SessionUserLoginFilter.java:34) ~[classes/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at com.user.xssfilter.CookieAddHttpOnlyFilter.doFilter(CookieAddHttpOnlyFilter.java:56) ~[classes/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:90) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:91) ~[struts2-core-2.3.24.1.jar:2.3.24.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[catalina.jar:8.0.30]
at com.user.xssfilter.DefenseAjaxAttackFilter.doFilter(DefenseAjaxAttackFilter.java:95) [classes/:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) [catalina.jar:8.0.30]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [catalina.jar:8.0.30]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [catalina.jar:8.0.30]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.0.30]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) [catalina.jar:8.0.30]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [catalina.jar:8.0.30]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) [catalina.jar:8.0.30]
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) [tomcat-coyote.jar:8.0.30]
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) [tomcat-coyote.jar:8.0.30]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-coyote.jar:8.0.30]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-coyote.jar:8.0.30]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_65]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.30]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:1.8.0_65]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) ~[?:1.8.0_65]
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) ~[?:1.8.0_65]
at sun.nio.ch.IOUtil.write(IOUtil.java:65) ~[?:1.8.0_65]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) ~[?:1.8.0_65]
at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:124) ~[tomcat-coyote.jar:8.0.30]
at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101) ~[tomcat-coyote.jar:8.0.30]
at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:172) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket(InternalNioOutputBuffer.java:139) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.http11.InternalNioOutputBuffer.addToBB(InternalNioOutputBuffer.java:197) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:41) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:320) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:84) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:256) ~[tomcat-coyote.jar:8.0.30]
at org.apache.coyote.Response.doWrite(Response.java:501) ~[tomcat-coyote.jar:8.0.30]
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:388) ~[catalina.jar:8.0.30]
... 50 more
日志简单分析 我自己定义的几个Filter文件中凡是包含这句代码的( chain.doFilter(request, resp);) 都会在日志文件中曝出.
求环境大神和版本大神指教!!!!
求同行一起讨论!!!!!
相关推荐
【SCI论文复现】基于IEEE9节点低惯量电力系统混合拓扑的构网型变流器控制:下垂控制、虚拟同步机控制(VSM)、匹配控制与可调度虚拟振荡器控制(dVOC)电磁暂态(Simulink仿真实现)
内容概要:本文围绕低惯量电力系统中构网型变流器的多种先进控制策略开展研究,重点实现了下垂控制、虚拟同步机控制(VSM)、匹配控制以及可调度虚拟振荡器控制(dVOC)在三相四桥臂逆变器中的电磁暂态建模与仿真,并基于IEEE9节点系统进行验证。通过Simulink平台构建混合拓扑结构,系统对比分析了各类控制方法在频率支撑、电压调节、动态响应及系统稳定性等方面的性能差异,旨在提升高比例新能源接入背景下电力系统的主动支撑能力与运行韧性。; 适合人群:电力电子、电力系统自动化及相关专业的研究生、科研人员及从事新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握构网型变流器在现代电力系统中的建模与控制方法;②深入理解VSM、dVOC等前沿控制技术的工作原理及其对系统稳定性的贡献;③为低惯量电网的仿真分析与控制策略优化提供技术参考与实现范例。; 阅读建议:建议结合文中提供的Simulink仿真模型与关键技术细节,动手复现各项控制策略,并通过设置不同扰动工况进行对比测试,以深化对控制机理的理解和工程应用能力的培养。
微电子与集成电路设计导论(第2版)配套课件+习题
微电子与集成电路设计导论(第2版)配套课件+习题
MT2.26.10 3.apk
MT2.26.10 3.apk
成品ASRS电路图.pdf
成品ASRS电路图.pdf
码学堂输入法:拼音 + 五笔二合一
码学堂输入法是一款码学堂研发的中文输入法。它不是外挂,不是弹窗程序,而是正式注册进Windows系统的 TSF文本服务——安装后与微软拼音、微软五笔并列出现在系统输入法列表中,Win + 空格 一键切换,随叫随到。拼音 + 五笔二合一,真正的无广告输入法——轻巧、透明、零打扰。


