我們有一個應用程序,它可以很好地工作。 現在我們在分裂應用 在這個過程中,我得到一個錯誤,說明事情的過程,在這裏如下圖所示... 這只是發生在d.close()的地方iText在執行document.Close時發生問題...不平衡保存恢復狀態操作員
Document d = new Document(PageSize.A4, 10, 10, 50, 50);
......
.....
finally{
if(d.isOpen()) {
d.close();
}
byteOutputStream.flush();
byteOutputStream.close();
pw.close();
return byteOutputStream.toByteArray();
}
(作爲一個整體整個申請被精細加工) (iText2.1.7罐時)
at com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:241)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:84)
at <<stub path>>.retrieve(_fileName1Remote_Stub.java:1)
at <<filePath>>.retrieve(fileName2.java:778)
at <<filePath>>.onCustomAction1(fileName3.java:403)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.el.parser.AstValue.invoke(AstValue.java:266)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
at org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:83)
... 43 more
引起:com.itextpdf.text.exceptions.IllegalPdfSyntaxException:非平衡保存/恢復狀態操作符。 at com.itextpdf.text.pdf.PdfContentByte.sanityCheck(PdfContentByte.java:3171) at com.itextpdf.text.pdf.PdfContentByte.toPdf(PdfContentByte.java:245) at com.itextpdf.text.pdf。 PdfFormXObject。(PdfFormXObject.java:88) 在com.itextpdf.text.pdf.PdfTemplate.getFormXObject(PdfTemplate.java:241) 在com.itextpdf.text.pdf.PdfWriter.addSharedObjectsToBody(PdfWriter.java:1257) at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1169) at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:780) at com.itextpdf.text.Document.close (Document.java:409) at <> .createPDF(<> .java:135) at <> .getPdfData (fileName1Bean.java:339) 在<> .retrieve(fileName1Bean.java:205) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:613) at com.ibm.ejs.container.EJSContainer.invokeProceed(EJSContainer.java :5730) 在com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:568) 在<> .retrieveIntercept(<>的.java:43) 在sun.reflect.GeneratedMethodAccessor215.invoke(未知來源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) 在java.lang.reflect.Method.invoke(Method.java:613) 在com.ibm.ejs.container.interceptors.InterceptorProxy.invokeInterceptor( InterceptorProxy.java:227) at com.ibm.ejs.container.interceptors.InvocationContextImpl.proceed(InvocationContextImpl.java:548) at com.ibm.ejs.container.interceptors.InvocationContextImpl.doAroundInvoke(InvocationContextImpl.java:229) 在com.ibm.ejs.container.EJSContainer.invoke(EJSContainer.java:5621) 在<> _c01dfd09.retrieve(EJSRemote0SL <> Bean_c01dfd09.java) 在<> Bean_c01dfd09_Tie.retrieve(_ <> Bean_c01dfd09_Tie.java: 1) at <>。 調用( <> _c01dfd09_Tie.java) 在com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:669) 在com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:523) at com.ibm.rmi.iiop.ORB.process(ORB.java:523) at com.ibm.CORBA.iiop.ORB.process(ORB.java:1575) at com.ibm.rmi.iiop。 Connection.doRequestWork(Connection.java:3039) at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2922) at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl。的java:64) 在com.ibm.ws.giop.threadpool.WorkQueueElement.dispatch(WorkQueueElement.java:165) 在com.ibm.ws.giop.filter.GiopFilterChain.processMessage(GiopFilterChain.java:203) 在com.ibm.ws.giop.threadpool.PooledThread.handleRequest(PooledThread.java:81) at com.ibm.ws.giop.threadpool.PooledThread.run(PooledThread.java:102) at com.ibm.ws. util.ThreadPool $ Worker.run(ThreadPool.java:1862)
你的問題有些不對。你說你使用古老的iText 2.1.7版(2009年7月7日發佈),所以你的代碼中應該有'com.lowagie',但是你的錯誤信息提到了'com.itextpdf',它只存在於iText版本中5.0.0。也許你的構建路徑中有多個iText jar? –
這個異常說明你在代碼中寫了一個bug。既然你不顯示你的代碼,我們不能準確地告訴你*你做錯了什麼。我們只能告訴你,你沒有爲每個'saveState()'使用'restoreState()',或者你使用'restoreState()'而不使用'saveState()'。我們也知道你或者不知道你使用的是哪個版本的iText,或者你是在說謊。 –
另外...你有沒有檢查你的'try'塊中是否真的出現了一些異常?他們可能會過早地讓你進入'finally'塊,並帶來一些保存/恢復問題。 – mkl