一、問題描述
加解密使用 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、重啟容器