我的手在我的头发上。
我正在使用Apache PDFBox,因为我想在JAVA中逐行阅读pdf文件并稍后处理内容。但是我有以下问题.. 我在一个单独的java程序(在main方法中)中使用了下面的代码,它在那里工作正常。但是,当我在我的tomcat服务器applet中使用它与石英调度程序一起出现问题时,我无法弄清楚原因。请记住,我将工作单独测试程序中的下面的行复制粘贴到我自己的大项目中,所以它是完全相同的代码。然而,在我更大的项目中,程序一直运行到String x1 = .. line,我放了一个断点。当我试图跨过它并没有'给出任何错误,控制台输出或任何东西,并跳过catch子句直接到最后。我在catch子句中加入了断点,它们没有被触发。
这是我的代码:
PDFTextStripper stripper;
PDDocument doc = null;
try{
doc = PDDocument.load("00026614_F_21Jan2013-18Feb2013.pdf");
stripper = new PDFTextStripper();
String x1= stripper.getText(doc); //SOMETHING GOES WRONG HERE
//break up the file content returned as a string into individual lines
List<String> ans= Arrays.asList(x1.split("\r\n"));//THIS IS NEVER REACHED
}
catch(Exception e){
e.printStackTrace(); //THIS IS NEVER REACHED EITHER
}
finally{
if(doc!=null) //IT GOES FROM STRING X1 STRAIGHT TO HERE.
doc.close();
}
我得到的唯一输出来自LOG4J,必须为程序的其他部分初始化,最后几行输出
34212 [DefaultQuartzScheduler_Worker-1] DEBUG org.apache.pdfbox.util.PDFStreamEngine - processing substream token: PDFOperator{Tm}
34212 [DefaultQuartzScheduler_Worker-1] DEBUG org.apache.pdfbox.util.PDFStreamEngine - processing substream token: COSName{ttf0}
34212 [DefaultQuartzScheduler_Worker-1] DEBUG org.apache.pdfbox.util.PDFStreamEngine - processing substream token: COSInt{10}
34212 [DefaultQuartzScheduler_Worker-1] DEBUG org.apache.pdfbox.util.PDFStreamEngine - processing substream token: PDFOperator{Tf}
现在让我烦恼的是如何才能弄清楚该通话中出了什么问题?就像我说的,如果我把代码放在一个单独的java程序中它运行正常..但我“无法获得任何错误输出或捕获任何异常(我试图捕获异常,即使它应该给IOException和是的我我也试过了。
我希望你们中的任何一个人都知道怎么做。亲切的问候
答案 0 :(得分:4)
看起来有人已经回答了这个问题,但是为错误添加了一个问题就可以解决我遇到的类似问题。
我添加了这个&#39; catch&#39; (错误)在“赶上”之后例外:
catch (Error err){
err.printStackTrace();
throw (err);
}