8u111-jdk-alpine在java開發(fā)中的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)

在仔細搜索了一番后,發(fā)現(xiàn)github上的一個描述比較相似:

https://github.com/docker-library/openjdk/issues/73

解決方法

經(jīng)過了解爷贫,知道是因為alpine中缺少FontConfiguration认然,那么就考慮安裝ttf-dejavu這個軟件。

http://blog.csdn.net/freewebsys/article/details/53816615找到了解決辦法漫萄。

在服務器適當位置位置創(chuàng)建一個Dockerfile卷员,內(nèi)容為:

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/*

在同一位置執(zhí)行:

docker build -t docker.io/java-font:8-jre-alpine .

執(zhí)行完畢后會有一個新的java的鏡像:

REPOSITORY   IMAGE ID            CREATED             SIZE

docker.io/java-font 8-jre-alpine        dc7703ec6f07        31 hours ago        131.5 MB

再次構建項目的時候使用新的jdk鏡像即可解決問題。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腾务,一起剝皮案震驚了整個濱河市毕骡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岩瘦,老刑警劉巖未巫,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異启昧,居然都是意外死亡叙凡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門密末,熙熙樓的掌柜王于貴愁眉苦臉地迎上來握爷,“玉大人,你說我怎么就攤上這事严里”模” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵田炭,是天一觀的道長师抄。 經(jīng)常有香客問我,道長教硫,這世上最難降的妖魔是什么叨吮? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮瞬矩,結果婚禮上茶鉴,老公的妹妹穿的比我還像新娘。我一直安慰自己景用,他們只是感情好涵叮,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伞插,像睡著了一般割粮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上媚污,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天舀瓢,我揣著相機與錄音,去河邊找鬼耗美。 笑死京髓,一個胖子當著我的面吹牛航缀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播堰怨,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼芥玉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了备图?” 一聲冷哼從身側(cè)響起飞傀,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诬烹,沒想到半個月后砸烦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡绞吁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年幢痘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片家破。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡颜说,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汰聋,到底是詐尸還是另有隱情门粪,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布烹困,位于F島的核電站玄妈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏髓梅。R本人自食惡果不足惜拟蜻,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枯饿。 院中可真熱鬧酝锅,春花似錦、人聲如沸奢方。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蟋字。三九已至稿蹲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間愉老,已是汗流浹背场绿。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工剖效, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫉入,地道東北人焰盗。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像咒林,于是被迫代替她去往敵國和親熬拒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問題描述 在部署一個驗證碼服務的容器服務時遇到了一個空指針錯誤垫竞,錯誤代碼為: 在仔細搜索了一番后澎粟,發(fā)現(xiàn)github...
    武斌OUC閱讀 8,907評論 0 3
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,534評論 15 147
  • 最近公司項目上線原因欢瞪,一直加班活烙。沒有時間更新文章。隔壁部門需要我提供sdk的打包的支持遣鼓,所以一直在學習docker...
    若與閱讀 457評論 0 8
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,750評論 1 21
  • 宮城里錦繡繁華啸盏,紅塵外金戈鐵馬。 醉披綾羅舞天下骑祟,傾城一笑袖藏沙回懦。 故年中燈火闌珊,白雪下人孤影殘次企。 誰道君王三生...
    鳳回閱讀 222評論 0 1