网站群应用中遇到的一个问题,整理一下,和大家分享。
1) 问题描述:
登录页面等有验证玛显示的页面,通常可以正确显示验证码图片,但是在某些情况下发现验证码图片无法显示,上传图片后无法保存文章,或者文章计数器无法正常显示,直接访问计数器,页面报错 ,报错信息如下:
java.lang.NoClassDefFoundError
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:164)
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1141)
java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1131)
com.sudytech.webplusdc.sitecount.ArticleCountServlet.processRequest(ArticleCountServlet.java:49)
com.sudytech.webplusdc.sitecount.ArticleCountServlet.doGet(ArticleCountServlet.java:78)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
2)解决方案
一开始误认为是缺少class文件导致,查看近期部署记录,发现该情况出现的可能性比较低,同事提醒我试着看看tomcat是否有问题,于是查看了tomcat日志,发现如下信息
" Can't connect to X11 window server using '10.0' as the value of the DISPLAY variable."
奇怪的是,我并没有用window平台呀??????????
通过网上搜索,发现类似问题的解决方案,在tomcat启动文件中加入:
#! /bin/sh
unset DISPLAY
#....
重启tomcat,问题居然都好了……
悲剧的我,2个小时的时间就这么过去了……
参考文章:http://skydream.iteye.com/blog/133359