在不同的服务器上运行我的应用程序时,出现以下异常。该代码在两个不同的 tomcat 服务器上运行,但在特定的一台服务器上不起作用。
java.lang.NoClassDefFoundError: org/bouncycastle/asn1/pkcs/PrivateKeyInfo org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi.engineGeneratePrivate(Unknown Source) java.security.KeyFactory.generatePrivate(KeyFactory.java:372)
当我收到错误时,代码部分如下:
> pk = kf.generatePrivate(ks);
PrivateKey pk = null;
X509Certificate cert = null;
Security.addProvider(new BouncyCastleProvider());
try{
byte [] key = Base64.decodeBase64(llave.getBytes());
byte [] cer = Base64.decodeBase64(certificado.getBytes());
KeyFactory kf = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec ks = new PKCS8EncodedKeySpec(key);
pk = kf.generatePrivate(ks);
pk.getEncoded();
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
InputStream in = new ByteArrayInputStream(cer);
cert = (X509Certificate)certFactory.generateCertificate(in);
DateTime fechaDesde = new DateTime(cert.getNotBefore());
DateTime fechaHasta = new DateTime(cert.getNotAfter());
有人知道为什么会发生这种情况吗?
最佳答案
java.lang.NoClassDefFoundError当 JVM 在运行时无法找到编译时可用的特定类时,会抛出此异常。
关于java - 读取证书错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25165020/