我双手插在头发上。
我正在使用 Apache PDFBox,因为我想在 JAVA 中逐行读取 pdf 文件并稍后处理内容。但是我有以下问题.. 我在一个单独的 java 程序中使用了下面的代码(在 main 方法中),它在那里工作正常。但是,当我在我的 tomcat 服务器小程序中将它与石英调度程序结合使用时,出现了问题,我不知道为什么。请记住,我将下面的行从工作的单独测试程序复制+粘贴到我自己更大的项目中,所以它是完全相同的代码。然而,在我更大的项目中,程序一直运行到我放置断点的 String x1 = .. 行。当我尝试跳过它时,它不会给出任何错误、控制台输出或任何东西,而是直接跳过 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 并且是的我也试过了)。
我希望你们中的任何人都知道该怎么做。亲切的问候