Java 读取证书错误

Java 读取证书错误,java,certificate,base64,private-key,Java,Certificate,Base64,Private Key,在其他服务器上运行应用程序时,我遇到以下异常。代码在两个不同的tomcat服务器上工作,但在一个特定的服务器上不工作 java.lang.NoClassDefFoundError: org/bouncycastle/asn1/pkcs/PrivateKeyInfo org.bouncycastle.jcajce.provider.asymetric.rsa.KeyFactorySpi.EngineeGeneratePrivate(未知 Source)java.security.KeyFactor

在其他服务器上运行应用程序时,我遇到以下异常。代码在两个不同的tomcat服务器上工作,但在一个特定的服务器上不工作

java.lang.NoClassDefFoundError: org/bouncycastle/asn1/pkcs/PrivateKeyInfo org.bouncycastle.jcajce.provider.asymetric.rsa.KeyFactorySpi.EngineeGeneratePrivate(未知 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在运行时无法找到编译时可用的特定类时,会引发此异常


是的,您的运行时类路径不包含指定的类。我应该在tomcat服务器的类路径上指定该类吗?您是如何解决此问题的?我已将bouncycastle.jar添加到我的类路径中