![](/img/trans.png)
[英]What kind of error java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString is this?
[英]Java - RSA Public Key from PEM File - java.lang.NoClassDefFoundError: org/bouncycastle/asn1/x509/SubjectPublicKeyInfo
我有 PEM 文件,它是一個 RSA PRIVATE KEY,我正在使用下面的代碼讀取私鑰和公共:
StringReader reader = new StringReader(//pem);
PEMReader pemReader = new PEMReader(reader);
final KeyPair keyPair = (KeyPair) pemReader.readObject();
pKey = keyPair.getPublic();
RSAPublicKey rsaPublicKey = (RSAPublicKey) pKey;
rsaPublicKey.getEncoded();
Base64.getEncoder().encodeToString(rsaPublicKey.getEncoded()))
此代碼在作為獨立運行時運行良好 Java
但是,當作為 Web 應用程序運行時,我收到以下錯誤::
SEVERE: Servlet.service() for servlet MYSERVER threw exception
java.lang.NoClassDefFoundError: org/bouncycastle/asn1/x509/SubjectPublicKeyInfo
at org.bouncycastle.jce.provider.JCERSAPublicKey.getEncoded(Unknown Source)
圖書館:: bcprov-jdk16-143
有什么線索嗎??
該錯誤是因為您錯過了代碼中的一些Bouncy Castle jar 依賴項。
問題是 Bouncy Castle 需要在 Java 中注冊為有效的加密提供者。 您可以使用以下代碼執行此操作:
Security.addProvider(new BouncyCastleProvider());
或在全球范圍內 Java 像這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.