docker java.lang.NoClassDefFoundError: org/bouncycastle/** 解决


一、问题描述

加解密使用 org.bouncycastle ,本地开发ok,上传docker容器,报  java.lang.NoClassDefFoundError: org/bouncycastle/

 

二、问题排查

参考其他大佬的文章,知道了这是由于加入了jdk的第三方安全库,需要额外配置

但绝大部分都是关于windows、linux下的,没扒到docker的解决方法

自己动手,记录如下,供其他同学参考

 

三、解决问题

1、进入容器

docker exec -it tomcat8001 /bin/sh

2、查看 JAVA_HOME 目录

env

3、退出容器

ctrl+P+Q

4、拷贝 jar 包进容器

docker cp /storage/lib/bcprov-jdk15on-1.56.jar tomcat8001:/docker-java-home/jre/lib/ext

5、修改 java.security文件

本地找份 java.security文件 ,在下面加上

security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider

6、拷贝  java.security文件 进容器

docker cp /storage/java.security tomcat8001:/docker-java-home/jre/lib/security

7、重启容器


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM