当前位置: 首页 > news >正文

网站验证码突然无法显示

为什么80%的码农都做不了架构师?>>>   hot3.png

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

Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

Caused by: java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.

 

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

 

以下为转贴:

1.什么是Headless mode? 
Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。

 

2.何时使用和headless mode?
Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)。

 

3.如何使用和Headless mode?
一般是在程序开始激活headless模式,告诉程序,现在你要工作在Headless mode下,就不要指望硬件帮忙了,你得自力更生,依靠系统的计算能力模拟出这些特性来:
System.setProperty("java.awt.headless","true");

 

修改${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为例,总共有七处这样的地方,修改好后即可。


转载于:https://my.oschina.net/moson/blog/272199

相关文章:

  • [leetcode]Search a 2D Matrix @ Python
  • 雷军亲自打造的套餐了解下:用多少付多少
  • linux的进程管理
  • 网站三要素tdk如何正确的设置
  • 快照——COFW\ROFW
  • java B2B2C Springcloud电子商城系统-springCloud跨域访问
  • VSAN 和 vSphere Replication 的互操作
  • 阿里云基础产品技术月刊 2018年12月
  • java.io.BufferedOutputStream 源码分析
  • 小程序 · 配置总结
  • 程序员的自我修养 学习心得(2)
  • Django集成Markdown编辑器【附源码】
  • 首页查询功能的一次实现过程
  • 关于LightMapping和NavMesh烘焙的动态载入
  • struts2之example
  • [deviceone开发]-do_Webview的基本示例
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Brief introduction of how to 'Call, Apply and Bind'
  • canvas 绘制双线技巧
  • ES6之路之模块详解
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript 基本功--面试宝典
  • java小心机(3)| 浅析finalize()
  • Python_OOP
  • 分布式事物理论与实践
  • 官方解决所有 npm 全局安装权限问题
  • 基于web的全景—— Pannellum小试
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 译有关态射的一切
  • 云大使推广中的常见热门问题
  • 《天龙八部3D》Unity技术方案揭秘
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $(selector).each()和$.each()的区别
  • (2)STL算法之元素计数
  • (6)STL算法之转换
  • (7)STL算法之交换赋值
  • (arch)linux 转换文件编码格式
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (南京观海微电子)——COF介绍
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)UDP基本编程步骤
  • (一)WLAN定义和基本架构转
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转载)Linux网络编程入门
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • ***php进行支付宝开发中return_url和notify_url的区别分析