之前開發的應用都是基於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