22

iText Javaを使用しようとしています。例「 how to sign 」を実行すると、次のエラーが発生します。

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

「Getting Started with iText - How to sign a PDF using iText」によると、 BouncyCastleを使用する必要があります。

ファイルをダウンロードしました: bcprov-jdk15on-147.jar からBouncyCastle ダウンロード ページ。
プロジェクトに追加: Java Build Path/Libraries/Add External JARs...

次の行を追加しました。

Security.addProvider(new BouncyCastleProvider());

この例を実行すると、同じエラーが発生します。
そこで、「PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL」というタイトルの bcpkix-jdk15on-147.jar という別のファイルをダウンロード
し、プロジェクトに追加しました: Java Build Path/Libraries/Add External JARs
... 2 つのジャー。

この例を実行すると、次のエラーが発生します。

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

「bcprov-ext-jdk15on-147.jar」というファイルをダウンロードしてみましたが、問題は解決しませんでした。

Windows 7 64ビットでiText 5.2.1とEclipseを使用しています。

4

8 に答える 8

30

iText は、bouncycastle の依存関係をオプションとしてマークします。それらが必要な場合は、独自の pom ファイルに依存関係を追加する必要があります。

プロジェクトに含める依存関係を見つけるには、使用しているバージョンの itextpdf pom.xml ファイル (たとえば、5.3.2、こちら) を開き、2 つの 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>

それらを pom ファイルにコピーし、オプションのオプションを削除します

    <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>
于 2013-07-31T13:03:45.557 に答える
20

BouncyCastle ライブラリは、iText などの他のライブラリとの互換性を損なう大きな API 変更を受けています。

また

  • 以前のバージョンの BouncyCastle ライブラリを使用します。古いバージョンはここにあります。ただし、この特定のバージョンの BC と互換性のある適切なバージョンの iText を見つける必要があります。

  • iText の独自のビルドを作成します (SVN トランクは修正されています)。iText は Maven でビルドできます ( SVN のルートに短いreadme ファイルがあります)。トランクにバグがある可能性があるため、自己責任であることに注意してください。

  • iText の次のバージョンを待ちます。私の経験からすると、iText のリリースは 2 か月ごとに行われます。私は iText のコミッターではないので、ETA をお伝えすることはできません。

詳細については、このスレッドを参照してください

于 2012-04-30T22:41:35.280 に答える
5

bcprov-jdk15on-147 のバージョンから、DEREncodable のクラスは、org.bouncycastle.asn1 のパスの下に存在しなくなりました。この質問を解決するには、146 より前のバージョン (146 を含む) を使用できます。

于 2014-04-15T08:32:10.090 に答える
1

bouncycastle.org で入手できる jar にこのクラスが含まれていないように見えるのは奇妙です。おそらく、このページ (リンク)にリストされている場所のいずれかを使用することをお勧めします。

于 2012-04-30T22:32:53.877 に答える
1

幸いなことに、現在、依存関係の jar が iText と共に提供されています。

以下のリポジトリ リンクを確認し、extrajars.zipファイルをダウンロードしてください。

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

于 2014-02-12T10:14:02.273 に答える
1

私は同じ問題を抱えていますが、libreria をダウンロードして /WEBINF/LIB でそれらのファイルを更新すると修正されます

于 2013-04-05T23:39:18.543 に答える