最近在测试上布署的项目经常性的出现验证码过了一段时间以后出不来的情况,耐心找了一下,最后在上级的指导下发现了报错,其实说真的,我自己也找到了这个报错,只是没有当一回事。因为这个验证码的东西不是我写的,我也不知道这个报错是不是和它有关系。
错误如下:
2014-05-21 10:46:17,826 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Could not complete request
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
后来百度了一下,发现解决的方案是:
在catalina.sh里加上一句“CATALINA_OPTS=-Djava.awt.headless=true”,
-Djava.awt.headless=true
修改为如下: "$_RUNJAVA"
$JAVA_OPTS $CATALINA_OPTS
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"
-Dcatalina.base="$CATALINA_BASE"
-Dcatalina.home="$CATALINA_HOME"
-Djava.io.tmpdir="$CATALINA_TMPDIR"
-Djava.awt.headless=true
另外还有一种方案,在我这里也是发生的,就是磁盘满了,毕竟是一个流要写文件。
用df -h 可以看一下,磁盘是否有满,如果是被日志什么的充满了,清一下就可以了。