每天多学一点知识。
今天部署项目的时候出现验证码无法显示的问题,如下图所示:
找问题的过程:
1、F12查看网络请求,跟本地比对除了状态码不一样,没看出来什么问题
2、查看运行日志catalina.out,也没有提示异常
3、在tomcat的logs文件夹下的目录里查看了所有日志,终于在localhost.2019-08-14.log中看到了错误
解决问题:
该问题的解决方法:
在Tomcat/bin/catalina.sh 中增加-Djava.awt.headless=true
至于加的位置吗,第一次看到的是在大约392行的地方加,我尝试了在else里添加,然后重启tomcat,问题依旧;第二次尝试在if和else里都加了,还是无用;
第三次尝试,添加JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true",如下图所示:
重启tomcat,验证码成功出现。
原因:
对于一个Java服务器来说经常要处理一些图形元素,例如地图的创建或者图形和图表等。这些API基本上总是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。
备忘:
还有的方法是:(参考网址)
[root@localhost /]# yum install dejagnu.noarch 1:1.4.4-17.el6 [root@localhost /]# yum install dejavu-sans-mono-fonts.noarch 2.33-1.el6 [root@localhost /]# yum install dejavu-serif-fonts.noarch 2.33-1.el6