【问题标题】:Signing PDF with itext library throws error使用 itext 库签署 PDF 会引发错误
【发布时间】:2017-02-03 07:09:46
【问题描述】:

请帮我解决这个问题,我第一次在 pdf 上使用签名。我想用证书签署 pdf,但它抛出了我放下的错误,我正在使用 itext-5.0.5 在 netbeans8.2 (JAVA) 中开发桌面应用程序。我已经阅读了有关依赖项和版本的一些内容,我真的不知道如何解决这个问题。感谢您的帮助,如果您能逐步向我解释,那就太好了。谢谢

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

【问题讨论】:

  • 将 bouncycastle 依赖添加到您的项目中。

标签: itext digital-signature


【解决方案1】:

错误告诉您,您的 CLASSPATH 中没有 BouncyCastle。您问题的正常答案是:

检查您用于 BouncyCastle 的 iText 版本的 POM 文件 你需要的版本。下载 BouncyCastle 版本,并将其放入您的 类路径。

但是,由于某种原因,您使用的是 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 的另一个原因。

注意:如果您将项目设为 Maven 项目会容易得多。在这种情况下,声明对 iText(最新版本)的依赖就足够了,Maven 会代替您完成所有繁重的工作。

【讨论】:

  • 非常感谢,我下载并添加了您评论的 JAR。我会接受你对未来项目的所有建议。这个项目是我必须快速完成的任务,我能够在你的帮助下解决。他的反应非常好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多