나는 나의 머리카락을 손에 들고있다.java skicks catch 절이 마침내 아파치에서 마침내 뛰어 오른다. pdfbox
Apache PDFBox를 사용하고 있습니다. 왜냐하면 JAVA에서 한 줄씩 PDF 파일을 읽고 나중에 내용을 다루기를 원하기 때문입니다. 그러나 다음과 같은 문제가 있습니다. (main 메서드에서) 별도의 Java 프로그램에서 아래 코드를 사용하고 잘 작동합니다. 그러나 쿼츠 스케쥴러와 결합하여 내 tomcat 서버 애플릿에서 사용할 때 문제가 발생하여 그 이유를 알 수 없습니다. 아래의 줄을 작업 별 테스트 프로그램에서 내 자신의 큰 프로젝트로 복사하여 똑같은 코드로 복사한다는 것을 명심하십시오. 그러나 더 큰 프로젝트에서 프로그램은 문자열 x1 = ..까지 중단 점을 넣을 때까지 실행됩니다. 내가 그걸 넘어서려고 할 때 어떤 오류나 콘솔 출력이나 뭐든지주고 catch 절을 넘어서서 마침내 마침내. catch 절에 중단 점을 넣었고 트리거되지 않았습니다.
이
내 코드입니다 : 프로그램의 다른 부분과 출력의 마지막 몇 줄 초기화해야했다 내가 얻을 수있는 유일한 출력은 LOG4J에서입니다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();
}
이
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}
이제는 버그가 있다는 것이 어떻게 그 전화에서 잘못 됐는지 알아낼 수 있습니까? 내가 말한 것처럼 그것은 잘 실행되는 별도의 자바 프로그램에 코드를 넣으면 ..하지만 나는 어떤 에러 출력도 얻지 못하거나 어떤 예외도 잡을 수 없다. (예외를 잡으려고 노력 중이다. 종류 누군가가 이미 대답처럼
나는 자바가 깨지지 않았 음을 보증 할 수 있으며 "마침내 곧장 뛰어 오르지"않는다. catch 절이 호출되지 않으면 예외가 발생하지 않습니다. –
디버깅만을 위해서'Exception' 대신'Throwable'을 잡아서 아무 것도 얻지 못하게 할 수 있습니다. 여기에 '오류'는 '예외'가 아니지만 여전히 throw 가능합니다. – Charlie
아마도 '예외'가 아니라 '오류'가 발생했을 것입니다. 'catch' 블록을'catch (Exception e) {'에서'catch (Error e) {'로 변경해 볼 수 있습니다. 아마도 'NoClassDefFoundError' 또는'NoSuchMethodError' 오류입니다 –