2014-11-06 1 views
0

나는 PDF/다음 코드를 사용하여 itext와 자바를 사용하여 문서 만들기 위해 노력하고 있습니다 :점점 예외 .NoClassDefFoundError : COM/itextpdf/텍스트/로그/CounterFactory

PdfAWrite writer = PdfAWriter.getInstance(myDoc, myStream, PdfAConformanceLevel.PDF_A_1A); 

을하지만 난이 예외가 계속 :

java.lang.NoClassDefFoundError: com/itextpdf/text/log/CounterFactory 
at com.itextpdf.text.pdf.PdfAWriter.<init>(PdfAWriter.java:210) 
at com.itextpdf.text.pdf.PdfAWriter.getInstance(PdfAWriter.java:86) 

내 pom.xml 파일

입니다
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>itextpdf</artifactId> 
    <version>5.5.3</version> 
</dependency> 

<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>itext-pdfa</artifactId> 
    <version>5.5.3</version> 
</dependency> 

아무도 내가이 probl를 해결하기 위해 무엇을해야하는지 알 수 있습니다 여자 이름? 당신이 당신의 클래스 경로에 itextpdf.jar를 그리워처럼

감사

답변

3

하나 이상의 항아리에이 클래스가있을 때 비슷한 예외가 발생합니다. 어쩌면 클래스 경로에서 중복을 확인해야합니다. 어쩌면 같은 라이브러리의 서로 다른 버전이 공존 할 수도 있습니다. Eclipse를 사용하는 경우, pom의 'Dependency hierarchy'보기를보고 복제본을 찾으십시오.

+1

아주 좋은 제안입니다. 'NoClassDefFoundError'는 여러 버전의 클래스가 발견되었지만 정확한 클래스를 정의 할 수 없다는 의미에서 오해의 소지가 있습니다. 모호하기 때문에 버전을 사용해야합니다. 어쨌든 :이 문제를 해결하는 것은 간단합니다. 많은 사람들이이 문제가 발생하지 않고 iText를 사용하고 있습니다. 처음부터 시작하면 언제나 도움이됩니다. –

+1

@BrunoLowagie NoClassDefFoundError가 오해의 소지가 있다고 말하면서 문제는 필자의 pom.xml 파일에 여러 가지 종속성이 있다는 것입니다.Kenneth의 제안 덕분에 문제가 해결되었습니다. – Shahe

1

보인다. 항아리를 다운로드하여 클래스 패스에 추가하십시오.

+0

내가 @Shahe 당신이 클래스 경로 구성을 표시 할 수 iText를-pdfa-5.5.3.jar – Shahe

+0

와 함께 내 클래스 경로에 그 itextpdf-5.5.3.jar이? IDE에서 앱을 실행하고 있습니까? – Jens

+0

Eclipse IDE에서 응용 프로그램을 실행 중이며 maven을 사용하여 프로젝트를 빌드하고 있습니다. – Shahe

0

현재 Primefaces 라이브러리의 릴리스는 iText의 이전 릴리스를 나타냅니다. 최신 iText를 분포를 설치하려고하면 다음과 같은 오류로 종료됩니다 : 이것은 최근이 iText에 com/itextpdf/text로 이름이 변경되었습니다 com/lowagie/text 패키지를 출시 때문이다

java.lang.NoClassDefFoundError: com/lowagie/text/

. 따라서이 문제가 해결 될 때까지 iText 릴리스 (2.1.7)를 사용하거나 최소한 패키지 구조를 확인하십시오.

이 유용 할 수 있습니다 : http://www.mastertheboss.com/jboss-web/primefaces/export-your-datatable-to-excel-and-pdf-using-primefaces?showall=&start=1

+0

* 이전 릴리스 * - 음, 한편으로는 고대라고 말할 수 있습니다 ... – mkl

관련 문제