You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Bouncy Castle到bcprov-jdk15on-1.66后DEREncodable类找不到如何解决

报错根因

Bouncy Castle从1.47版本开始对ASN1模块做了重构,移除了老版本的org.bouncycastle.asn1.DEREncodable类,该类的功能已经被org.bouncycastle.asn1.ASN1Encodable接口完全替代,你升级到1.66版本后找不到该类属于版本间API不兼容的正常现象。

修复步骤
  • 替换导入引用:将代码中所有import org.bouncycastle.asn1.DEREncodable;语句全量替换为import org.bouncycastle.asn1.ASN1Encodable;
  • 调整类型声明:所有变量、方法参数、返回值中声明为DEREncodable的类型,统一替换为ASN1Encodable
  • 适配方法调用:原有调用DEREncodable.getDEREncoded()获取编码的逻辑,替换为ASN1Encodable.toASN1Primitive().getEncoded("DER")
  • 适配CMS签名API:你用到的CMS签名相关类CMSSignedDataGenerator的传参如果包含DEREncodable类型,替换为ASN1Encodable即可,业务签名、验签逻辑不需要修改。
注意事项

如果你的项目用到了CMS相关功能,建议同时引入同版本的bcpkix-jdk15on-1.66.jar包,避免出现其他CMS相关类找不到的问题,同时要清理依赖中所有旧版本的BC相关jar包,避免多版本类冲突。

内容的提问来源于stack exchange,提问作者keku keku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:06:04