2017-02-03 13 views
0

初めてpdfを使用して署名します。私は証明書付きのpdfに署名したいが、それは私が落としたエラーを投げる。私はitext-5.0.5を使ってnetbeans8.2(JAVA)でデスクトップアプリケーションを開発している。私は依存関係やバージョンについて何かを読んだことがありますが、これをどのように解決すればいいのか分かりません。私はあなたの助けに感謝します。ありがとうございましたitextライブラリを使用してPDFに署名するとエラーが発生する

Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/DERObject 
at com.itextpdf.text.pdf.PdfSignatureAppearance.getAppearance(PdfSignatureAppearance.java:409) 
at com.itextpdf.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:950) 
at com.itextpdf.text.pdf.PdfSignatureAppearance.preClose(PdfSignatureAppearance.java:897) 
at com.itextpdf.text.pdf.PdfStamper.close(PdfStamper.java:192) 
at clases.Metodos.firmarFactura(Metodos.java:279) 
at clases.VendedorHilo.run(VendedorHilo.java:49) 
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DERObject 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 6 more 
+0

プロジェクトにbouncycastle依存関係を追加します。 – pedrofb

答えて

1

このエラーは、CLASSPATHにBouncyCastleがないことを示しています。あなたの質問へ通常の答えは次のようになります。

チェックあなたが必要とはBouncyCastle バージョン用に使用しているiTextのバージョンのPOMファイル。そのBouncyCastleバージョンをダウンロードし、 CLASSPATHに入れてください。

しかし、何らかの理由で、2010年11月のiTextの古代版を使用していて、その時点でiTextリリースにはPOMファイルがありませんでした。

重要:デジタル署名のコンテキストでは非常に悪い考えです。 2010年以降、デジタル署名の世界が進化し、この進化により、2010年に提供された機能よりも安全性の高いデジタル署名機能が実現しました。時代遅れです。

あなたの雇用者が故意に署名昔ながらの方法を作成したい場合、あなたは古いiTextのリポジトリをチェックし、iTextの5.0.5を検索することができます。 lib directoryにはいくつかの豪華な城の瓶があります。 bcmail-jdk14-138.jar、bcprov-jdk14-138.jar、bctsp-jdk14-138.jarをダウンロードし、CLASSPATHに入れてください。重要

原因はBouncyCastleの性質のために、あなたのCLASSPATHにはBouncyCastleの複数のバージョンを持っている場合、あなたは奇妙な例外を期待することができます。これがiTextのより新しいバージョンを使用したい理由の1つです。

注:プロジェクトをMavenプロジェクトにするとずっと簡単です。その場合、iText(最近のバージョン)への依存関係を宣言すれば十分であり、Mavenはすべてあなたのところで重い作業をします。

+0

ありがとう、私はあなたがコメントしたJARを正確にダウンロードして追加します。私は将来のプロジェクトのためにあなたのすべての勧告を取ります。このプロジェクトはすばやく完了しなければならなかった仕事でした。私はあなたの助けを借りて解決することができました。彼の反応はとても良かった。 – JoseXD

関連する問題