Linux/Unix + RESIN/Tomcat 验证码无法显示的问题(ZT)
最近公司项目开发中遇到的一个问题,整理一下,和大家分享。
??? 验证码无法显示的问题,验证码的代码就是google上查找到的最常见的代码,服务器采用resin部署于linux或unix。不是常见的out.clear()问题,这次的问题发现在一个我压根就没有想到的地方,profile DISPLAY 环境变量。?
??? 1) 问题描述:
??? 登录页面等有验证玛显示的页面,通常可以正确显示验证码图片,但是在某些情况下发现验证码图片无法显示,并且目前只发生在linux/unix平台,windows下正常.而且和resin/jdk版本无关.
??? bug的直接表现是表现为ie下是红叉,firefox下无实现.将验证码图片的地址在ie输入框中输入,则页面报错:
???? 在windows平台下运行,结果正常,打印:
sun.awt.Win32GraphicsEnvironment
???? 将代码放到出问题的resin安装所在的linux平台,手工编译运行:
javac Test.java
java -cp . Test
??? 报错,打印为:
?
方案二:
Linux环境下对java图片类的支持不够,需要添加如下配置、方可加载图片环境:(或置于/etc下profile 配置文件中 /etc/profile文件)
tomcat下bin的启动文件,startup.sh中修改添加如下: export CATALINA_OPTS="-Djava.awt.headless=true"即可。