关于使用Bouncy Castle时java.lang.NoSuchFieldError:sha224WithRSAEncryption错误的处理

CentOs中java.lang.NoSuchFieldError:sha224WithRSAEncryption错误的处理

  最近在CentOs平台JBoss中部署了所开发的项目,其中使用到Bouncy Castle的jar包bcmail和bcprov,遇到错误:
java.lang.NoSuchFieldError: sha224WithRSAEncryption
at org.bouncycastle.operator.jcajce.OperatorHelper.<clinit>(Unknown Source)
at org.bouncycastle.operator.jcajce.JcaContentSignerBuilder.<init>(Unknown Source)

  困扰了数天,尝试多种解决方法:部署至本机windows的tomcat中、jboss中,程序运行正常;部署至CentOs的tomcat中程序也正常。
  后来
参考了 http://blog.csdn.net/sebarsunny/article/details/10003571
中描述的方法,成功,从而也就找到了问题的原因,为:“加入了jdk的第三方安全库,需要额外配置”。同时,发现在“百度百科”的“bouncy castle”词条中说得也很明白,附上链接:
http://baike.baidu.com/link?url=WNoOf0o6B7rKp4mfmiUlGbeZfLNtjYTrU-wy2jn-nAgI5bWlaV1j0SHNI0r79frPqAUUJ836U-0x8tyzW0Qv9KALJ7bho6ub6EGaTnoG6KO
  我的具体操作是:
1.将jar包bcprov-jdk15-1.46.jar放在了$JAVA_HOME/jre/lib/ext/路径之下  
2.在$JAVA_HOME/jre/lib/security/ 中的java.security 文件中,添加:
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

  注意:security.provider.n中的序号n不能与此文件中已有的值重复。
后记:后来发现,其实报错的真正原因是我的jar包与项目中原有的一个jar包冲突了,而此jar包高版本的不兼容低版本的。因此将两个jar包分别放在各自的模块中,而不是公共位置,使得两个模块调用不到对方的jar包就好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值