Подтвердить что ты не робот

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.

4b9b3361

Ответ 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...