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问题解决的主要内容,如果未能解决你的问题,请参考以下文章