之前开发的应用都是基于 OracleJDK 1.8 来做的,图片验证码显示正常,但是更换成 OpenJDK1.8 后,验证码无法显示,后台代码抛出异常,异常内容如下,java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.java 1264)
可以看到,猜测是因为验证码的 API 用到了 AWT 的东西,但是 Openjdk 少了些啥。经过不断的折腾,发现后续的 OpenJDK 同样存在这些问题,在网上找了很多办法也没有用,后来发现需要在操作系统层面安装 FontConfig 组件。本人环境使用的是 Centos 7.3 于是直接安装 FontConfig 即可,如果你使用的 docker 容器环境,需要在镜像中进行安装,并执行 fc-ache –force(必须执行)
yum install fontconfig
fc-cache –force