最近java web项目中涉及到验证码,发现使用weblogic部署到Linux服务器后,验证码无法显示并且错误为java.lang.NoClassDefFoundError:Could not initialize class sun.awt.X11GraphicsEncvironment ,本地使用tomcat、weblogic部署都没有重现此问题。
从X11GraphicsEnvironment这个类功能入手分析,java服务器在处理图片时,需要运行一个X-server以便使用AWT,所以提示这个错误,确定问题出现在启动X-server时,未能实现X-server功能。
解决办法:
JDK1.4以上版本,通过运行headless服务器的方式可以解决这个问题,具体到weblogic设置的方法为,在setDomainEnv.sh中添加启动参数"-Djava.awt.headless=true",例:
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"
export JAVA_OPTIONS
网友评论