场景
CentOS7中使用Dockerfile部署后台jar包
在上面使用Dockfile部署带后台jar包的镜像时提示:
at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
这里的jar包使用的是若依前后端分离版的后台jar包。
本地搭建流程可以参照
若依前后端分离版手把手教你本地搭建环境并运行项目
在调用他的验证码接口时提示如下错误。
05:07:30.869 [http-nio-7777-exec-2] INFO o.a.c.c.C.[.[.[/] – [log,173] – Initializing Spring DispatcherServlet ‘dispatcherServlet’
05:07:31.075 [http-nio-7777-exec-2] ERROR c.r.f.w.e.GlobalExceptionHandler – [handleException,83] – null
java.lang.NullPointerException: null
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.
at sun.awt.FcFontManager.
at sun.awt.X11FontManager.
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)
注:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
这是因为项目中需要使用图形验证码。
主要原因是字体问题,需要在Dockfile文件中添加下面一条
添加之后的文件内容为
然后删除原来的容器和镜像,重新进行构建
等待构建成功之后再重新运行后即可。
网上也有说可以基础镜像不用openjdk,而改用oraclejdk的基础镜像