正常項目無法訪問(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"http://服務器的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