Я использую iText 5.5.0
и BouncyCastle bcprov-jdk15on-1.50
для цифровой подписи PDF. Все работает отлично, если я не MakeSignature.signDetached
времени в методе MakeSignature.signDetached
.
Когда я использую TSAClient
указывающий TSAURL
, мой код дает мне ошибку
java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable at MakeSignature.signDetached method
и моя программа завершается, хотя я обрабатывал исключения.
Я пробовал разные версии банок bouncycastle, но я получаю ту же ошибку с разницей в классах, которые не были найдены.
Мне действительно нужна Timestamp, включенная в подпись. Что мне делать.
Вы можете проверить зависимость itext 5.5 по следующему URL.
http://mvnrepository.com/artifact/com.itextpdf/itextpdf/5.5.0
Согласно этой странице, соответствующая версия bouncycastle для itext 5.5 равна 1.49. Я читал на странице где-то в Интернете, что bouncycastle сильно меняется, и часто бывает трудно найти соответствующую версию bouncycastle для конкретной версии itext.
Рекомендуемым способом включения iText в ваш проект является использование Maven. Затем Maven разрешит вам зависимости. Я прочитал, что вы используете Eclipse, Eclipse имеет очень хороший плагин Maven.
Поместите это в свой pom.xml
:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.8</version>
</dependency>
Дополнительная информация доступна по адресу http://developers.itextpdf.com/itext-java
Загрузите файл bcprov-jdk15on-150.jar (для JDK 1.5 - 1.7) ниже указанной ссылки и добавьте в свой проект решение java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable exception.
http://www.bouncycastle.org/latest_releases.html
найдите соответствующий файл jar из приведенной выше ссылки в соответствии с вашей версией JDK.