wake-up-neo.com

iText/BouncyCastle KlasseNotFound org.bouncycastle.asn1.DEREncodable und org.bouncycastle.tsp.TimeStampTokenInfo

Ich versuche, iText Java zu verwenden. Wenn Sie das Beispiel " how to " ausführen, tritt folgender Fehler auf:

Caused by: Java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo

Entsprechend "Erste Schritte mit iText - So unterschreiben Sie ein PDF mit iText" , muss ich das BouncyCastle verwenden.

Ich habe die Datei heruntergeladen: bcprov-jdk15on-147.jar von der BouncyCastle-Download-Seite.
Und zum Projekt hinzugefügt: Java Build Path/Libraries/Externe JARs hinzufügen ...

Ich habe folgende Zeile hinzugefügt: 

Security.addProvider(new BouncyCastleProvider());

Wenn Sie das Beispiel ausführen, tritt der gleiche Fehler auf.
Ich habe eine andere Datei heruntergeladen: bcpkix-jdk15on-147.jar mit dem Titel "PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL" 
Und zum Projekt hinzugefügt: Java Build Path/Libraries/Externe JARs hinzufügen ...
Nun habe ich zwei Gläser.

Wenn Sie das Beispiel ausführen, tritt der folgende Fehler auf:

Caused by: Java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable

Ich habe versucht, die Datei "bcprov-ext-jdk15on-147.jar" herunterzuladen, konnte das Problem jedoch nicht lösen.

Ich verwende iText 5.2.1 und Eclipse unter Windows 7 64 Bit.

20
Cobaia

BouncyCastle-Bibliotheken unterliegen umfangreichen API-Änderungen, die die Kompatibilität mit anderen Bibliotheken wie iText brachen.

Entweder

  • verwenden Sie eine frühere Version von BouncyCastle-Bibliotheken. Alte Versionen finden Sie hier . Sie müssen jedoch die richtige Version von iText finden, die mit dieser bestimmten Version von BC kompatibel war.

  • erstellen Sie Ihre eigene Erstellung von iText (der SVN-Trunk wurde behoben). iText kann mit Maven erstellt werden (es gibt eine kurze Readme-Datei im Stammverzeichnis des SVN). Bitte beachten Sie, dass dies auf eigene Gefahr geschieht. In diesem Koffer können Fehler auftreten. 

  • warten Sie auf die nächste Version von iText. Aus meiner Erfahrung heraus kommen iText-Veröffentlichungen alle paar Monate, manchmal öfter, manchmal auch weniger. Ich bin zwar kein iText-Committer, daher kann ich Ihnen keine ETA geben.

Weitere Informationen finden Sie in diesem Thread

19
Alexis Pigeon

iText kennzeichnet Abhängigkeiten von Bouncycastle als optional. Wenn Sie sie benötigen, müssen Sie die Abhängigkeiten in Ihrer eigenen POM-Datei hinzufügen.

Um herauszufinden, welche Abhängigkeit in Ihr Projekt aufgenommen werden soll, öffnen Sie die Datei itextpdf pom.xml der verwendeten Version (z. B. 5.3.2, here ) und suchen Sie nach den 2 Abhängigkeiten von bouncycastle. 

    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.47</version>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcmail-jdk15on</artifactId>
        <version>1.47</version>
        <optional>true</optional>
    </dependency>

Kopieren Sie sie in Ihre POM-Datei und entfernen Sie die Option optional

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.47</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcmail-jdk15on</artifactId>
        <version>1.47</version>
    </dependency>
27
jehon

Mit itextpdf Version 5.5.4 werden org.bouncycastle-Abhängigkeiten als <optional>true</optional> markiert. Das bedeutet, Sie MÜSSEN diese Abhängigkeiten in Ihrem eigenen POM einschließen, oder Sie können mit Ausnahmen der Klasse nicht gefunden werden.

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.4</version>
</dependency>

<!-- Bouncycastle dependencies necessary as they are optional = true
    in itextpdf ... but they're not-so-optional in reality -->
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15on</artifactId>
    <version>1.49</version>
</dependency>
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcpkix-jdk15on</artifactId>
    <version>1.49</version>
</dependency>
14
CorayThan

von der Version von bcprov-jdk15on-147 ist die Klasse von DEREncodable unter dem Pfad von org.bouncycastle.asn1 nicht mehr vorhanden. Sie können die Version vor 146 (einschließlich 146) verwenden, um diese Frage zu beantworten. 

3
Bill Watson

Es ist seltsam, dass die bei bouncycastle.org verfügbaren Gläser diese Klasse nicht enthalten. Vielleicht möchten Sie eine der in dieser Seite (Link) aufgeführten Orte verwenden. 

1
srkavin

Glücklicherweise werden jetzt die Abhängigkeitsgläser zusammen mit dem iText ausgeliefert.

Bitte überprüfen Sie den Repository-Link unten und laden Sie die Datei extrajars.Zip herunter

http://sourceforge.net/projects/itext/files/

1
Kıvanç Sahici

ich habe das gleiche Problem, aber ein Problem behoben, wenn ich die Libreria herunterladen und diese Dateien auf/WEBINF/LIB aktualisieren

1
Jules

Für jruby -ers mit demselben Fehler habe ich von jruby-complete-1.6.6.jar auf jruby-complete-9.1.13.0.jar aktualisiert, und das Problem schien zu lösen ...

0
rogerdpack