java - descargar - iText/BouncyCastle ClassNotFound org.bouncycastle.asn1.DEREncodable y org.bouncycastle.tsp.TimeStampTokenInfo
bouncycastle java download (8)
Afortunadamente, los frascos de dependencia se entregan junto con el iText ahora.
Compruebe el enlace del repositorio a continuación y descargue el archivo extrajars.zip
Estoy tratando de usar iText Java. Cuando ejecuta el ejemplo " cómo firmar " se produce el siguiente error:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo
Según "Cómo comenzar con iText - Cómo firmar un PDF usando iText" , tengo que usar el BouncyCastle .
Descargué el archivo: bcprov-jdk15on-147.jar de la BouncyCastle
Y agregado al proyecto: Java Build Path / Libraries / Add JARs externos ...
Agregué la siguiente línea:
Security.addProvider(new BouncyCastleProvider());
Cuando ejecutas el ejemplo se produce el mismo error.
Así que descargué otro archivo: bcpkix-jdk15on-147.jar titulado "PKIX / CMS / EAC / PKCS / OCSP / TSP / OPENSSL"
Y agregado al proyecto: Java Build Path / Libraries / Add JARs externos ...
Ahora tengo dos tarros.
Cuando ejecuta el ejemplo se produce el siguiente error:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable
Intenté descargar el archivo "bcprov-ext-jdk15on-147.jar" pero no resolví el problema.
Estoy usando iText 5.2.1 y eclipse en Windows 7 64 bits.
Con itextpdf versión 5.5.4 las dependencias de org.bouncycastle están marcadas como <optional>true</optional>
. Esto significa que DEBE incluir esas dependencias en su propio pom, o puede encontrarse con excepciones de clase no encontrada.
<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>
Desde la versión de bcprov-jdk15on-147, la clase de DEREncodable ya no existe bajo la ruta de org.bouncycastle.asn1. Puede usar la versión anterior a 146 (incluida 146) para resolver esta pregunta.
Es extraño que los frascos disponibles en bouncycastle.org no parezcan contener esta clase. Tal vez, es posible que desee utilizar uno de los lugares enumerados en esta página (enlace) .
Las libs de BouncyCastle están experimentando cambios en la API que rompieron la compatibilidad con otras librerías como iText.
Ya sea
utilizar una versión anterior de BouncyCastle libs. Las versiones anteriores se pueden encontrar here . Sin embargo, tendrá que encontrar la versión correcta de iText que sea compatible con esta versión particular de BC.
haga su propia compilación de iText (el tronco SVN ha sido arreglado). iText se puede compilar con Maven (hay un archivo Léame corto en la raíz de la SVN). Tenga en cuenta que es bajo su propio riesgo, puede haber errores en el maletero.
Espera la próxima versión de iText. Desde mi experiencia, los lanzamientos de iText vienen cada dos meses, en algún momento más a menudo, a veces menos. Sin embargo, no soy un comentarista de iText, así que no puedo darte ninguna ETA.
Más información se puede encontrar en este hilo.
Para jruby-ers con el mismo error, actualicé a jruby-complete-9.1.13.0.jar desde jruby-complete-1.6.6.jar y el problema parecía resolverse ... FWIW ...
Tengo el mismo problema, pero lo soluciono cuando descargo la libreria y actualizo esos archivos en / WEBINF / LIB
iText marca las dependencias de bouncycastle como opcionales. Si los necesita, debe agregar las dependencias en su propio archivo pom.
Para saber qué dependencia incluir en su proyecto, abra el archivo itextpdf pom.xml de la versión que está utilizando (por ejemplo, 5.3.2, here ) y busque las 2 dependencias de bouncycastle.
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.47</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.47</version>
<optional>true</optional>
</dependency>
Cópialos en tu archivo pom y elimina la opción opcional .
<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>