当前位置: 首页 > 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
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Centos6.8 使用rpm安装mysql5.7
  • input的行数自动增减
  • js继承的实现方法
  • JS实现简单的MVC模式开发小游戏
  • Map集合、散列表、红黑树介绍
  • nodejs:开发并发布一个nodejs包
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • use Google search engine
  • web标准化(下)
  • 从零开始学习部署
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 新书推荐|Windows黑客编程技术详解
  • HanLP分词命名实体提取详解
  • Hibernate主键生成策略及选择
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #、%和$符号在OGNL表达式中经常出现
  • #QT(串口助手-界面)
  • (20050108)又读《平凡的世界》
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (四)图像的%2线性拉伸
  • (一)80c52学习之旅-起始篇
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ***通过什么方式***网吧
  • *上位机的定义
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net Stream篇(六)
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .Net中间语言BeforeFieldInit
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • /etc/fstab和/etc/mtab的区别
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [10] CUDA程序性能的提升 与 流