web項目部署在centos 7驗證碼顯示不出來解決方案


今天把項目部署在centos7上,發現驗證碼顯示不出來,看了一下tomcat日志

Exception in thread "http-nio-8080-exec-3" java.lang.InternalError: java.lang.reflect.InvocationTargetException
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.desktop/java.awt.Font.getFont2D(Font.java:497)
at java.desktop/java.awt.Font$FontAccessImpl.getFont2D(Font.java:237)
at java.desktop/sun.font.FontUtilities.getFont2D(FontUtilities.java:139)
at java.desktop/sun.java2d.SunGraphics2D.checkFontInfo(SunGraphics2D.java:670)
at java.desktop/sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:831)
at java.desktop/sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:46)
at java.desktop/sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2929)
at com.itheima.travel.web.servlet.PicCodeServlet.doPost(PicCodeServlet.java:55)
at com.itheima.travel.web.servlet.PicCodeServlet.doGet(PicCodeServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

Exception in thread "http-nio-8080-exec-3" java.lang.InternalError: java.lang.reflect.InvocationTargetException
    at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
    at java.desktop/java.awt.Font.getFont2D(Font.java:497)
    at java.desktop/java.awt.Font$FontAccessImpl.getFont2D(Font.java:237)
    at java.desktop/sun.font.FontUtilities.getFont2D(FontUtilities.java:139)
    at java.desktop/sun.java2d.SunGraphics2D.checkFontInfo(SunGraphics2D.java:670)
    at java.desktop/sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:831)
    at java.desktop/sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:46)
    at java.desktop/sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2929)
    at com.itheima.travel.web.servlet.PicCodeServlet.doPost(PicCodeServlet.java:55)
    at com.itheima.travel.web.servlet.PicCodeServlet.doGet(PicCodeServlet.java:75)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

 


發現應該是字體問題,windows下的字體在centos上並沒有.

1,首先把需要的字體復制到**“/usr/share/fonts”**目錄中

2,修改字體文件的權限,使root用戶以外的用戶也可以使用:

cd /usr/share/fonts/windows

chmod 755 *.ttc

3,建立字體緩存

mkfontscale (如果提示 命令不存在,安裝 # yum install mkfontscale )

mkfontdir

fc-cache -fv (如果提示 命令不存在,安裝# yum install fontconfig )

4、重啟計算機

解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM