centos:BufferedImage.getGraphics()获取对象为null问题解决

Posted 沛沛老爹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos:BufferedImage.getGraphics()获取对象为null问题解决相关的知识,希望对你有一定的参考价值。

 历史大背景

在系统迁移到新的阿里云环境后。

代码启动的时候,在后台登录页获取不到验证码。

激荡二十年

开始长征路.........

 刚开始以为是环境参数配置错了。

把所有的参数重新配置了一遍。

重新启动脚本后,发现结果果然还是不对。

只能放出终极大招了。

 直接在服务器上远程调试。

调试的时候,发现是因为调用了BufferedImage的getGraphics()方法的时候,直接返回了null。

代码应该是

GraphicsEnvironment.getLocalGraphicsEnvironment()

这里没有获取到导致的异常。

初步怀疑是linux的环境问题了。但是不太清楚是啥问题来的。

然后就百度了,郑重其事的告诉你,没事千万不要百度,除非google不能用。

百度了一个多小时,发现提供的解决方案都是抄袭的。

关键是还没抄对......

因为涉及的是字体,我把新旧两台服务器安装的都比对了下,终于发现了问题。

新买的机子缺少了很多的东西,一个个补上。然后再一个个验证。

一锤定音

最后发现是少了fontconfig这个软件。

用yum install fontconfig安装完成.

刷新网站后,发现终于OK了。验证码可以正常显示了。

总结

找到问题的根源,比怎么解决问题时间要重要的多。

解决问题,只要你找到的问题,剩下的就是时间问题了...

怎么成长?

首先承认存在问题,

然后发现问题,

最后才是解决问题。

以上是关于centos:BufferedImage.getGraphics()获取对象为null问题解决的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7安装Docker

centos7与centos6的区别

怎么远程登陆到虚拟机centos?centos要开机状态码?

centos和ubuntu区别

centos 怎么用命令全局搜索

centos7和centos6区别