【MedusaSTears】登录页面验证码加载不出,报500错误,而且变成Content-Type: text/html,java.awt.AWTError的解决办法

17 篇文章 0 订阅
4 篇文章 0 订阅

目录

一.问题描述:

1.环境

2.问题描述:

二.解决步骤

1.linux查看进程,是否有多余的tomcat

2.在项目对应的代码处添加或者参考步骤3(2和3我都操作了)

3.启动项目时候添加   -Djava.awt.headless=true

三.问题解析


一.问题描述:

1.环境

CentOS Linux release 7.1.1503 (Core)   64

jdk1.8.0_141

tomcat启动war项目

2.问题描述:

 如图,这个图片里面的验证码,一度都是好使的.突然就不好使了,图片加载不出来

调用验证码对应的接口,返回的错误信息是:

HTTP Status 500 – Internal Server Error
Type Exception Report

Message Handler processing failed; nested exception is java.awt.AWTError: Can't connect to X11 window server using 'localhost:11.0' as the value of the DISPLAY variable.

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

 

直接上干货:

二.解决步骤

1.linux查看进程,是否有多余的tomcat

如果有,全部kill掉,然后重启,查看是否解决(找了1天多最后却发现是这个问题,真是太坑爹了)

2.在项目对应的代码处添加或者参考步骤3(2和3我都操作了)

        /**
         * 解决以下问题 Handler processing failed; <br>
         * nested exception is java.awt.AWTError: <br>
         * Can't connect to X11 window server using 'localhost:11.0' as the value of the DISPLAY variable.
         */
        System.setProperty("java.awt.headless", "true");

3.启动项目时候添加   -Djava.awt.headless=true

由于我这里是tomcat启动的,所以修改tomcat的catalina.sh文件,如果是jar启动的,启动命令中添加这句话就可以了

参考链接

https://www.cnblogs.com/caoyingjielxq/p/9638615.html

vim tomcat/bin/catalina.sh
查找JAVA_HOME=
大约在230行左右,添加位置如图

然后启动查看启动命令,如图就是成功了:

三.问题解析

由于之前项目是好使的,后来突然不好使了,所以一度以为某个人改过什么地方的代码

而且仔细查看chrome的开发者模式里的请求,发现返回500错误,而且原本应该是

Content-Type: image/jpeg

却变成了

Content-Type: text/html

网上找了一些资料,说是"请求没到你这个方法前就已经出错了,所以返回的是text格式而不是图片格式"

方向错误,继续找;

 

后来说是Windows下有图形化工具,而linux命令行的系统是没有的,需要指定   -Djava.awt.headless=true 这句话

也改了Catalina.sh里面多个地方,重启却有部分报错(看来有些教程很不靠谱),所以我才把步骤3贴上,这个才是有效的修改,不要听信什么"文件里面要修改8个地方"这种事情

不过重启之后还是没好使;

 

然后在无意中,我查找进程 ps -ef | grep tomcat 却发现,进程里有10多个tomcat,

全部kill后重启发现就好使了

特此记录一下整个过程和跳过的坑

 

这个tomcat的shutdown.sh之后仍保留进程是真的坑啊

 

 

 

——All By MedusaSTears

——2019.11.12

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值