1)
java.lang.InternalError: erroneous handlers
error like following
Servlet.service() for servlet action threw exception
java.lang.InternalError: erroneous handlers
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:250)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfStream(JasperExportManager.java:167)
at com.justcommodity.cxc.jsp.reports.CxcReportBasedEnhSqlAction$$M$573fee08.write2Stream(CxcReportBasedEnhSqlAction.java:161)
at com.justcommodity.cxc.jsp.reports.CxcReportBasedEnhSqlAction$$M$573fee08.execute(CxcReportBasedEnhSqlAction.java:62)
at com.justcommodity.cxc.jsp.reports.CxcReportBasedEnhSqlAction$$A$573fee08.execute(<generated>:0)
at com.justcommodity.cxc.jsp.reports.CxcReportBasedEnhSqlAction.execute(<generated>:0)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
just cause lacking some jar, like I used jasperreport.jar, but with no iText.jar, so the error happen
2)
java.io.IOException: java.awt.Image fetch aborted or errored
error like following
java.io.IOException: java.awt.Image fetch aborted or errored
at com.lowagie.text.Image.getInstance(Unknown Source)
at com.lowagie.text.Image.getInstance(Unknown Source)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1075)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:480)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:448)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:413)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:250)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfStream(JasperExportManager.java:167)
at com.justcommodity.cxc.jsp.reports.CxcReportBasedEnhSqlAction.write2Stream(CxcReportBasedEnhSqlAction.java:164)
at com.justcommodity.cxc.jsp.reports.CxcReportBasedEnhSqlAction.execute(CxcReportBasedEnhSqlAction.java:69)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
You know, java can release resource, but it never catch the process of memory running;
So, while doing batch print, so you can open Is Cache & Is Delay, both the two options can make you sure using the pic only once, and read from cache later.
3)
java.io.EOFException
12:06:47,612 ERROR [ReportAction]
demo.jsp.reports.ReportException: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:358)
at demo.jsp.reports.Report.throwAnyErrorFromChild(CxcReport.java:664)
at demo.jsp.reports.Report.writeReportToStream(CxcReport.java:740)
at demo.jsp.reports.ReportAction.execute(CxcReportAction.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at com.jc.cxc.web.filter.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:171)
Caused by: java.io.EOFException
32 more
12:06:47,615 ERROR [ReportAction]
ClientAbortException: java.net.SocketException: Write failed: Broken pipe
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:97)
at demo.jsp.reports.ReportAction.execute(ReportAction.java:132)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at com.jc.cxc.web.filter.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:171)
Caused by: java.net.SocketException: Write failed: Broken pipe
at jrockit.net.SocketNativeIO.writeBytesPinned(Native Method)
at jrockit.net.SocketNativeIO.socketWrite(Unknown Source)
at java.net.SocketOutputStream.socketWrite0(SocketOutputStream.java)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:746)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:304)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:991)
at org.apache.coyote.Response.action(Response.java:182)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:97)
at com.justcommodity.cxc.jsp.reports.CxcReportAction.execute(CxcReportAction.java:132)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
測(cè)試了所有能排除的問(wèn)題,最后解決了,絕對(duì)不解釋,哈哈
另外把java.io.EOFException查找到比較好的資料帖過(guò)來(lái):
------------------轉(zhuǎn)-start-----------------
摘自http://xiao-yi.javaeye.com/blog/151120
摘自http://blog.csdn.net/fengzi1/archive/2008/01/30/2073433.aspx
ClientAbortException,java.net.SocketException.
關(guān)鍵字: Tomcat ClientAbortException
TOMCAT報(bào)異常,如下:
引用
java.lang.RuntimeException: javax.xml.transform.TransformerException: ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.ajaxanywhere.XMLHandler.sendDOMDocument(XMLHandler.java:123)
at org.ajaxanywhere.XMLHandler.sendZones(XMLHandler.java:93)
at org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
等等,在下面還能看到這樣的提示:
Caused by: java.net.SocketException: Connection reset by peer: socket write error
查了下TOMCAT的文檔,解釋如下:
引用
Wrap an IOException identifying it as being caused by an abort of a request by a remote client.
在BAIDU和GOOGLE上找了下原因,大概歸結(jié)為:
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的原因是由于處理http連接時(shí),正在輸出內(nèi)容時(shí),用戶關(guān)閉了IE,會(huì)出現(xiàn)一個(gè)"ClientAbortException",屬于I/O處理中出現(xiàn)的一個(gè)異常,應(yīng)用服務(wù)器應(yīng)該會(huì)捕捉。
Connection reset by peer的原因:
經(jīng)常出現(xiàn)的Connection reset by peer: 原因可能是多方面的,不過(guò)更常見(jiàn)的原因是:
①:服務(wù)器的并發(fā)連接數(shù)超過(guò)了其承載量,服務(wù)器會(huì)將其中一些連接Down掉;
②:客戶關(guān)掉了瀏覽器,而服務(wù)器還在給客戶端發(fā)送數(shù)據(jù);
③:瀏覽器端按了Stop
很多人都說(shuō)是客戶端造成的,沒(méi)有辦法控制,是個(gè)比較郁悶的問(wèn)題。
但是,我擔(dān)心的是:雖然前臺(tái)沒(méi)有任何出錯(cuò)的跡象,但是后臺(tái)會(huì)記錄這個(gè)異常,日志也會(huì)瘋狂爆滿,時(shí)間長(zhǎng)了,肯定會(huì)DOWN掉的,還沒(méi)找到好的解決辦法,若有相同經(jīng)歷,且優(yōu)雅的解決掉的朋友,望告之,謝!
resin有一個(gè)參數(shù)ignore-client-disconnect
tomcat似乎沒(méi)有
原因:
一般是有些客戶端已關(guān)閉,一些線程因?yàn)檠舆t等原因覺(jué)察不到此連接已結(jié)束,繼續(xù)等到到出錯(cuò)
或是
客戶端那里不停刷或一個(gè)訪問(wèn)/刷新沒(méi)完成前再刷,要讓這個(gè)無(wú)用的線程死掉
這個(gè)問(wèn)題一般是客戶端在連接還沒(méi)有完全建立的時(shí)候就取消連接,比如用戶按了瀏覽器上面的“停止”按鈕,一般來(lái)說(shuō)沒(méi)有什么問(wèn)題。但是如果頻繁出現(xiàn),就表示很多客戶端連接到Apache服務(wù)器的響應(yīng)時(shí)間太長(zhǎng)了,可能是網(wǎng)絡(luò)的問(wèn)題或者服務(wù)器性能問(wèn)題。
connection reset 多半是因?yàn)閷?duì)方在你未讀完數(shù)據(jù)之前就關(guān)閉socket.
------------------轉(zhuǎn)-end-----------------
4)
java.lang.IllegalStateException: getOutputStream() has already been called for this response
2008-04-03 10:56:10,452 ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/demo].[action]]http-0.0.0.0-443-12 Servlet.service() for serv
let action threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:599)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
at org.apache.jsp.admin.admin_005fmpob_005fexport_jsp._jspService(admin_005fmpob_005fexport_jsp.java:119)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
5)
java.lang.OutOfMemoryError: PermGen space
This error occurs when the JVM runs out of space in the permanent generation heap. Since the defaults for the JVM are quite low, the first step should be to increase the default using -XX:MaxPermSize.
<!-- verbose garbage collection -->
<jvm-arg>-XX:MaxPermSize=256m</jvm-arg> <!-- sets the maximum size of the permanent heap (recommended) -->
In Jboss
run.conf, add like the followings:
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=256m"