tomcat启动报错两则
1.无法连接X11错误
tomcat Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
2.无法初始化错误
SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
这两个错误是因为java工程中有图形相关的调用,大多数服务器是没有装图形环境的,所以会抛异常,解决方法:
1.使用X Window System
yum groupinstall 'X Window System'
安装完后检查下jdk目录下的libmawt.so的依赖关系:
ldd /opt/jdk1.6.0_45/jre/lib/amd64/xawt/libmawt.so
发现有“not found”,用yum provides xxx.so查询下所在的包,在yum install xxx安装上
2.使用Xvfb
如果不想安装X windows,也可以使用Xvfb,为应用程序提供虚拟的X服务器环境
安装Xvfb:
yum install Xvfb
创建xauth认证文件:
创建/etc/X30.hosts 内容为:
localhost
如果有其它机器连到这个虚拟X服务器,ip也要写进来
启动:
Xvfb :30 -auth /etc/X30.hosts -screen 0 1280x1024x8 &
加入开机启动,把上面的命令写入: /etc/rc.d/rc.local
修改tomcat的catalina.sh文件,加入下面内容:
DISPLAY=:30
export DISPLAY
启动tomcat即可
3.修改jvm启动参数
在catalina.sh中加入:
export JAVA_OPTS="
-Djava.awt.headless=true "
即可
参考文章:
http://www.jvmhost.com/articles/java-gui-headless-server-xvnc-xvfb-x11vnc