上午完成了信息系统项目管理的文档管理系统,部署到云服务器的docker中,登陆页面可以出来,但验证码无法显示,直接使用云服务器ip:端口/sys/getverify,返回的json为系统繁忙。
查阅了一些资料,说缺少dejavu包,需要拷贝中文字体给对应的docker容器。
试着解决,安装dejavu,提示找不到,使用apt search dejavu搜索一下,找到存在的对应的资源,然后安装。
apt-get install fonts-dejavu
安装成功后,进入/usr/share/fonts/,查看已经可有dejavu文件夹。
重启docker容器,访问验证码的url,还是提示系统繁忙。
还有说需要中文字体,拷贝到/usr/share/fonts/中,依然无法解决。
仔细查阅代码,发现引用的第三方的验证码的jar包是jdk8开发的,在本机没有问题,放到虚拟机麒麟v10中也没有问题,查看虚拟机v10的jdk环境是openjdk-1.8,进入云服务器的docker容器中查看java版本,java -version,显示是openjdk-17.0.5。
查询 find / -name java ,搜索到了/opt/java/,然后查看tomcat启动日志,找的java路径是/opt/java/openjdk/bin/
果断搜索openjdk-8,apt search openjdk-8,安装安装apt-get install openjdk-8-jdk,安装成功后再次搜索java,find / -name java ,看到openjdk-8安装到了 /usr/lib/jvm/openjdk–amd64/中,
查看java版本还是17.0.5,直接删除了
rm -rf /opt/java/openjdk
,然后新建文件夹mkdir /opt/java,继续新建mkdir /opt/java/openjdk
然后把openjdk-8中的文件拷贝到新建的文件夹中
cp -r /usr/lib/jvm/openjdk-8-amd64/* /opt/java/openjdk/
查看java版本,变成了openjdk1.8,好像docker容器一下就down掉了了,在云服务主机上启动对应的容器,docker start docker名字或id,启动成功后,访问验证码url正常显示。
注:刚才替换java,是不是直接拷贝覆盖也行,没有做尝试,这次解决费周折,记录一下?
10-28
1936
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-13
3513
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)