2017-02-03 14 views
0

, пожалуйста, помогите мне в этом, в первый раз я использую подпись над pdf. Я хочу подписать pdf-файл с сертификатом, но он выдает мне ошибку, которую я подавил, я разрабатываю настольное приложение в netbeans8.2 (JAVA), используя itext-5.0.5. Я кое-что прочитал о зависимостях и версиях, я действительно не знаю, как это решить. Я ценю вашу помощь, если вы можете объяснить мне шаг за шагом, было бы здорово. СпасибоПодписание PDF с помощью itext library throws error

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

Ошибка сообщает вам, что у вас нет BouncyCastle в вашем CLASSPATH. нормальный ответ на ваш вопрос будет:

Проверьте POM файл версии IText вы используете для версии BouncyCastle вам нужно. Загрузите эту версию BouncyCastle и поместите ее в свой CLASSPATH.

Однако по какой-то причине вы используете древнюю версию iText, датированную ноябрем 2010 года, и в то время в выпуске iText не было файла POM.

ВАЖНО: Это очень плохая идея в контексте цифровых подписей! С 2010 года мир цифровых подписей эволюционировал, и эта эволюция привела к тому, что функции цифровой подписи более безопасны, чем функциональность, которая была доступна в 2010 году. Пожалуйста, сообщите работодателю, что он просит вас создать тип подписей, которые является устаревшим.

Если ваш работодатель намеренно хочет создать подписи старомодный способ, вы можете проверить старый репозиторий IText, и поиск IText 5.0.5. В вы найдете несколько башен для замков. Загрузите bcmail-jdk14-138.jar, bcprov-jdk14-138.jar и bctsp-jdk14-138.jar и поместите их в свой CLASSPATH.

ВАЖНО: в связи с характером BouncyCastle, вы можете ожидать странные исключения, если у вас есть более чем одна версия BouncyCastle в вашем CLASSPATH. Это еще одна причина, почему вы можете использовать более новую версию iText.

Примечание: это намного проще, если вы сделаете Ваш проект Maven проекта. В этом случае достаточно объявить зависимость от iText (недавняя версия), и Maven делает все тяжелое поднятие на вашем месте.

+0

Большое спасибо, я загружаю и добавляю именно JAR, который вы прокомментировали. Я приму все ваши рекомендации для будущих проектов. Этот проект был задачей, которую мне пришлось закончить быстро, и я смог решить с вашей помощью. Его ответ был очень хорошим. – JoseXD

 Смежные вопросы

  • Нет связанных вопросов^_^