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、重启容器