【发布时间】:2014-08-06 16:00:01
【问题描述】:
在不同的服务器上运行我的应用程序时出现以下异常。该代码在两个不同的 tomcat 服务器上工作,但在一个特定的服务器上它不起作用。
java.lang.NoClassDefFoundError: org/bouncycastle/asn1/pkcs/PrivateKeyInfo org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi.engineGeneratePrivate(未知 来源)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());
有人知道为什么会这样吗?
【问题讨论】:
-
是的,您的运行时类路径不包含指定的类。
-
我应该在我的 tomcat 服务器的类路径中指定它吗?
-
你是怎么解决这个问题的?
标签: java certificate base64 private-key