在Linux服务器上运行tomcat工程的时候会出现二维码创建失败还要响应超时的情况,因为再本地windows环境运行的时候是成功的,但是再Linux服务器上却失败了,一开始以为是该工程在Linux上是没有创建权限所以在代码加入了对应的写入文件的权限,但是奇怪的是最后还是没有成功,还是失败,很纳闷为啥会失败,也查了相关日志,发现在抛出异常Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.的异常,经过排查主要是因为在linux系统中,创建图形画布失败。linux系统图形控件未启动导致的。
这时需要在tomcat目录下的bin/catalina.sh文件的对于地方加入-Djava.awt.headless=true /
在Linux服务器上搜索$JAVA_OPTS然后找到八处跟下面类似一样的地方加上上面这个参数配置,如:
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 \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
org.apache.catalina.startup.Bootstrap "$@" start
在这几处地方加上,然后保存后,重新运行tomcat工程就可以顺利创建二维码了