正常项目无法访问(Linux 服务器),启动tomcat时卡在下图位置,项目无法启动。
1、先检查tomcat日志、项目日志没有报错信息,且没再产生新的日志信息。
2、jdk、tomcat 、 jvm 配置,服务器环境、内存、存储没有问题。
3、使用jconsole 检查启动线程
(1)修改tomcat catalina.sh
JAVA_OPTS 中加入以下参数
-Dcom.sun.management.jmxremote.port=8989 //连接端口,自定义不要与已有的端口冲突
-Dcom.sun.management.jmxremote.rmi.port=8989 //这句一定要添加,不添加就无法成功
-Dcom.sun.management.jmxremote.authenticate=false //不需要密码登陆
-Dcom.sun.management.jmxremote.ssl=false //不需要安全证书
-Djava.rmi.server.hostname=10.10.1.1"//服务器的ip
(2)另一台运维windows服务器上进入cmd终端输入jconsole。远程进程,不需要输用户名、口令,连接。
查看 localhost-startStop-1 线程,发现锁定信息
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
- 已锁定 java.lang.Class@2eaf5c32
确定问题原因:
如果程序采用到Java.awt进行图形处理,这就需要系统提供一个可供图形处理的图形环境,此Linux没有该环境,这样就会导致运算错误。需要启用headless模式,headless模式是在缺少显示屏、键盘或者鼠标是的系统配置。
解决办法:
在tomcat环境下修改catalina.sh
在JAVA_OPTS中加上一句 -Djava.awt.headless=true
到此这篇关于tomcat 启动时卡住问题排查的文章就介绍到这了,更多相关tomcat 启动卡住内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!