《Linux运维总结:tomcat8.5.37部署应用无法加载验证码图片》

一、问题背景

问题描述:tomcat启动项目图片验证码加载不出来,环境信息如下所示:

操作系统CPU架构JDK版本tomcat版本
Kylin Linux Advanced Server V10 (Tercel)aarch64jdk1.8.0_1818.5.37

二、问题解决

问题描述:tomcat启动项目图片验证码加载不出来,环境信息如下所示:

1、JAVA_OPTS中添加-Djava.awt.headless=true

说明:当前环境中的tomcat版本为8.5.37,设置的jvm参数在bin目录下的setenv.sh文件中,只需在之前定义的JAVA_OPTS中添加-Djava.awt.headless=true即可。

[root@arm bin]# vim  setenv.sh 
export JAVA_HOME=/usr/local/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk1.8.0_181/jre
export JAVA_OPTS="-Duser.timezone=Asia/Shanghai -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xms512m -Xmx4096m"

添加完成后,重启tomcat服务,发现还是无法加载图片验证码,在之前的x86_64架构中的服务器,操作系统是Centos7.6 和 Ubuntu 20上也出现过类似的问题,修改完之后图片验证码是出来的,但是在当前的Kylin Linux Advanced Server操作系统环境下不行,猜测可能跟系统环境有关系。

2、设置默认字体

根据官方描述,这个问题只发生在红帽7.4版本上。据报道,红帽公司的人正在努力解决这个问题。我找到的解决方案只是提供字体,以迫使乌托邦作为默认字体,由java使用。

[root@arm ~]# cat /etc/fonts/local.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>serif</family>
<prefer><family>Utopia</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Utopia</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer><family>Utopia</family></prefer>
</alias>
<alias>
<family>dialog</family>
<prefer><family>Utopia</family></prefer>
</alias>
<alias>
<family>dialoginput</family>
<prefer><family>Utopia</family></prefer>
</alias>
</fontconfig>

重启tomcat之后,发现图片验证码已经加载出来了。


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值