zoukankan      html  css  js  c++  java
  • 验证码无法显示:Could not initialize class sun.awt.X11GraphicsEnvironment 解决方案

    验证码突然无法显示,并报如下错误。

    Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:195)
    	at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
    	at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
    	at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1182)
    	at cn.com.chinautrust.idm.component.ValidateCode.createCode(ValidateCode.java:114)
    	at cn.com.chinautrust.idm.component.ValidateCode.<init>(ValidateCode.java:99)
    	at cn.com.chinautrust.idm.component.ValidateCodeUtils.getImg(ValidateCodeUtils.java:71)
    	at cn.com.chinautrust.idm.controller.login.VerificationCode.getValidateImgCode(VerificationCode.java:33)
    	at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
    	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
    	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
    	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    	... 43 more
    

    在catalina.sh里加上一句“-Djava.awt.headless=true ”,问题解决。
    经查,出现这种情况一般就是启动tomcat的用户无法访问Xserver,包括Xserver没有启动或者没有权限访问.

    修改${TOMCAT_HOME}/bin/catalina.sh或${TOMCAT_HOME}/bin/catalina.bat文件:

    在所有类似以下代码:
        "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS
          -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"
          -Djava.security.manager
          -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy
          -Dcatalina.base="$CATALINA_BASE"
          -Dcatalina.home="$CATALINA_HOME"
          -Djava.io.tmpdir="$CATALINA_TMPDIR"

    在尾部加上一句:
          -Djava.awt.headless=true

    修改后内容如下:
        exec "$_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

    以tomcat6.0为例,总共有八处这样的地方,修改好后即可。

  • 相关阅读:
    c#结构体、打他table、excel、csv互转
    WPF 自定义图表(柱状图,曲线图)
    NemaStudio船舶模拟软件下载及破解
    点双连通分量
    HDU4612 Warm up
    边双连通分量
    [Jsoi2010]连通数
    Intern Day73
    Intern Day72
    Intern Day70
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/13426102.html
Copyright © 2011-2022 走看看