IText/BouncyCastle ClassNotFound org.bouncycastle.asn1.DEREncodable и org.bouncycastle.tsp.TimeStampTokenInfo
Я пытаюсь использовать iText Java.
Когда вы запускаете пример " как подписываться, возникает следующая ошибка:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo
По "Начало работы с iText - Как подписать PDF с помощью iText" , я должен использовать BouncyCastle.
Я загрузил файл: bcprov-jdk15on-147.jar из Страница загрузки BouncyCastle.
И добавлен в проект: Java Build Path/Libraries/Добавить внешние JAR...
Я добавил следующую строку:
Security.addProvider(new BouncyCastleProvider());
При запуске примера возникает одна и та же ошибка.
Поэтому я загрузил еще один файл: bcpkix-jdk15on-147.jar под названием "PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL"
И добавлен в проект: Java Build Path/Libraries/Добавить внешние JAR...
Теперь у меня два банки.
При запуске примера возникает следующая ошибка:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable
Я попробовал загрузить файл "bcprov-ext-jdk15on-147.jar", но не решил проблему.
Я использую iText 5.2.1 и eclipse для 64-разрядных версий Windows 7.
Ответы
Ответ 1
BouncyCastle libs подвергаются тяжелым изменениям API, которые нарушили совместимость с другими библиотеками, такими как iText.
Либо
-
используйте предыдущую версию BouncyCastle libs. Старые версии можно найти здесь. Однако вам нужно будет найти нужную версию iText, которая была бы совместима с этой конкретной версией BC.
-
создайте собственную сборку iText (ствол SVN исправлен). iText можно построить с помощью Maven (там есть короткий файл readme в корне SVN). Обратите внимание, что на свой страх и риск могут возникнуть ошибки в багажнике.
-
дождитесь следующей версии iText. По моему опыту, релизы iText появляются каждые пару месяцев, иногда чаще, иногда меньше. Однако я не коммиттер iText, поэтому я не могу дать вам ETA.
Более подробную информацию можно найти в этом потоке
Ответ 2
У меня возникает аналогичная проблема, и вот конфигурация, которую я использовал, чтобы заставить ее работать:
- itext: 5.3.2
- bcprov-jdk15on: 1.47
- bcmail-jdk15on: 1.47
Или в формате maven:
<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>
Мне потребовалось столько времени, чтобы понять это (я посмотрел в нужном месте?), я думаю, что стоит поделиться...
Я уверен, что другие конфигурации могут работать, но этот трюк сделал для меня...
Ответ 3
С версией itextpdf 5.5.4 зависимости org.bouncycastle обозначаются как <optional>true</optional>
. Это означает, что вы ДОЛЖНЫ включать эти зависимости в свой собственный pom, или вы можете столкнуться с classnotfound исключениями.
<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>
Ответ 4
из версии bcprov-jdk15on-147, класс DEREncodable больше не существует по пути org.bouncycastle.asn1. Вы можете использовать версию до 146 (включая 146), чтобы решить этот вопрос.
Ответ 5
Странно, что банки, доступные на bouncycastle.org, похоже, не содержат этого класса. Возможно, вы захотите использовать один из мест, перечисленных в этой странице (ссылке).
Ответ 6
У меня такая же проблема, но исправить это, когда я загружаю библиотеку и обновляю эти файлы в/WEBINF/LIB
Ответ 7
К счастью, контейнеры зависимостей теперь поставляются вместе с iText.
Пожалуйста, просмотрите ссылку репозитория ниже и загрузите файл extrajars.zip
http://sourceforge.net/projects/itext/files/
Ответ 8
Для jruby-ers с тем же отказом я обновился до jruby-complete-9.1.13.0.jar от jruby-complete-1.6.6.jar, и проблема, похоже, решилась... FWIW...