8u111-jdk-alpine在java開發中的NullPointerException錯誤解決方案
問題描述
在部署一個驗證碼服務的容器服務時遇到了一個空指標錯誤,錯誤程式碼為:
java.lang.NullPointerException
at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
at sun.font.SunFontManager$2.run(SunFontManager.java:431)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<init>(SunFontManager.java:376)
at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.awt.Font.getFont2D(Font.java:491)
at java.awt.Font.access$000(Font.java:224)
at java.awt.Font$FontAccessImpl.getFont2D(Font.java:228)
at sun.font.FontUtilities.getFont2D(FontUtilities.java:180)
at sun.font.StandardGlyphVector.initFontData(StandardGlyphVector.java:1126)
at sun.font.StandardGlyphVector.init(StandardGlyphVector.java:1115)
at sun.font.StandardGlyphVector.<init>(StandardGlyphVector.java:167)
at java.awt.Font.createGlyphVector(Font.java:2545)
at nl.captcha.text.renderer.DefaultWordRenderer.render(Unknown Source)
at nl.captcha.Captcha$Builder.addText(Unknown Source)
at com.liferay.portal.captcha.simplecaptcha.SimpleCaptchaImpl.getSimpleCaptcha(SimpleCaptchaImpl.java:243)
at com.liferay.portal.captcha.simplecaptcha.SimpleCaptchaImpl.serveImage(SimpleCaptchaImpl.java:159)
at com.liferay.portal.captcha.CaptchaImpl.serveImage(CaptchaImpl.java:100)
at com.liferay.portal.kernel.captcha.CaptchaUtil.serveImage(CaptchaUtil.java:78)
at com.liferay.portal.captcha.CaptchaPortletAction.serveResource(CaptchaPortletAction.java:42)
在仔細搜尋了一番後,發現github上的一個描述比較相似:
https://github.com/docker-library/openjdk/issues/73
解決方法
經過了解,知道是因為alpine中缺少FontConfiguration,那麼就考慮安裝ttf-dejavu這個軟體。
在http://blog.csdn.net/freewebsys/article/details/53816615找到了解決辦法。
在伺服器適當位置位置建立一個Dockerfile,內容為:
FROM java:8-jre-alpine
# Install cURL
RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main\n\
https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" > /etc/apk/repositories
RUN apk --update add curl bash ttf-dejavu && \
rm -rf /var/cache/apk/*
重新打包 重新執行後 驗證碼出來了
相關文章
- Android開發中遇到Java.lang.NullPointerException解決辦法AndroidJavaNullException
- IDEA發生“Error:java: 錯誤: 不支援發行版本 5”錯誤的解決方案IdeaErrorJava
- java:錯誤:不支援發行版本1.4解決方案Java
- 如何避免Java程式碼中的空指標錯誤NullPointerException? - foojayJava指標NullException
- Linux下錯誤解決方案Linux
- latex 錯誤以及解決方案
- photoshop匯出png發生未知錯誤的解決方案,ps匯出發生未知錯誤怎麼解決
- Idea開發JAVA過程中遇到的錯誤集合以及解決方法,持續更新IdeaJava
- 解決java5 發行錯誤最好的方法Java
- 解決MySQL server has gone away錯誤的解決方案MySqlServerGo
- ORA-28000錯誤解決方案
- Ubuntu Cannot allocate memory 錯誤解決方案Ubuntu
- Hadoop常見錯誤及解決方案Hadoop
- photoshop 2021在m1 mac上匯出png發生未知錯誤的解決方案Mac
- SSL錯誤ssl connect error 35的解決方案Error
- PbootCMS中常見的錯誤提示及其解決方案boot
- 解決java.lang.NoSuchMethodError錯誤JavaError
- java開發管理者們常犯之錯誤與解決辦法Java
- TCP網路除錯助手提示錯誤:“1035:未知錯誤” 解決方案TCP除錯
- HTTP 錯誤 500.21 - Internal Server Error 解決方案HTTPServerError
- CS0234 錯誤,奇葩bug,解決方案
- vagrant homestead 錯誤記錄以及解決方案
- React 中 呼叫 lodash.debounce 不錯誤繫結 this 解決方案React
- JPA 開發中遇到的錯誤
- MYSQL中 TYPE=MyISAM 錯誤的解決方法MySql
- No bean named 'xxx' is defined錯誤,原因及解決方案Bean
- 訪問 HTTPS 網站時的 SSL 錯誤解決方案HTTP網站
- Java開發熟手該當心的錯誤Java
- 真機除錯出現 application installation failed 錯誤 解決方案除錯APPAI
- Ocelot錯誤解決
- navicat連線MySQL8.0.11報2059錯誤的解決方案MySql
- Can't Connect to MySQL Server on IP Address (10061) 錯誤的解決方案MySqlServer
- IIS 7.5 解析錯誤 命令執行漏洞解決方案
- 解決java“錯誤:編碼GBK的不可對映字元”Java字元
- jdbc.properties報錯:java.lang.NullPointerExceptionJDBCJavaNullException
- ionic 開發中的一些錯誤
- PHP中的Malformed UTF-8 characters錯誤解決PHPORM
- AndroidStudiogradle編譯NullPointerException(noerrormessage)解決AndroidGradle編譯NullExceptionErrorORM