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

原文地址:https://www.cnblogs.com/qiujz/p/13825043.html