因为在linux系统中,创建图形画布失败。linux系统图形控件未启动导致的。
解决方法:
java启动参数中添加
-Djava.awt.headless=true /
编辑tomcat目录下的bin/catalina.sh文件,
类似:
exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-sourcepath "$CATALINA_HOME"/../../java \
-Djava.security.manager \
-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.awt.headless=true \
处,添加。
类似:
eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $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 \
处,添加。
搜索JAVA_OPTS。
在tomcat8.0中共8处,添加-Djava.awt.headless=true
什么是headless模式?
Headless是指服务器的
无显示设备状态
(缺少显示器、键盘、鼠标)
例:应用集群、数据库集群等,它们一般没有显示器、键盘、鼠标,都是通过网络远程操作。
D. AWT与headless模式
AWT是Java构建GUI应用的标准API接口,且Java自带2套实现类,一套供标准模式使用(显示设备、驱动可用),另一套供headless模式使用(显示设备、驱动不可用);
Button、Checkbox、Choice、Dialog、FileDialog、Label、List、Menu、MenuBar、MenuItem、PopupMenu、Scrollbar、ScrollPane、TextArea、TextField、Window
注:这些组件,只能运行在“标准模式”下,Headless模式中使用会报错;
Canvas、Fonts、Colors、Images
注:这些组件不仅在“标准模式”下可用,它们的Headless版本也可以在Headless模式下正常使用;
通常B/S型Web应用运行于无显示设备、驱动的服务器端环境中,但是有使用AWT绘图接口的可能(例如:用Images、Fonts接口生成图片验证码);所以给Tomcat、Weblogic附加参数-Djava.awt.headless=true,强制使用Headless版本的AWT实现类,就能避免图形环境缺失所导致的程序出错;