我正在使用 digital-signatures-chapter 之后的 iText
5.5.11 。
我已经创建了 KeyStore
- ks.jks 文件,并将 bouncycaSTLe
jar 添加到我的 classpath
中。
使用我得到的 bouncycaSTLe
14-157(最新)版本 -
java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo
正在关注TimeStampTokenInfo-class-not-found我尝试使用 bouncycaSTLe 14-145 并出现此错误:
java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.digest.MD2$Digest
谁知道我还能尝试什么?
完整的错误日志:
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jcajce/provider/digest/MD2$Digest
at com.mataf.GenSig.PfxDS.sign(PfxDS.java:51)
at com.mataf.GenSig.PfxDS.main(PfxDS.java:71)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.digest.MD2$Digest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 2 more
谢谢。
最佳答案
看看iText 5.5.11 Maven pom.xml揭示:
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.49</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.49</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>1.5.1</version>
<optional>true</optional>
</dependency>
</dependencies>
因此,iText 是使用 BouncyCaSTLe 版本 1.49 的 Java 版本 5-8 版本进行编译的。
关于java - bouncycaSTLe 和 iText 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363748/