一、現場問題描述java
二、問題分析web
從現象來看,服務在啓動的時候請求gis服務,請求gis服務阻塞了服務的運行,同時這個gis請求沒有設置超時,致使服務一直卡着運維
三、問題確認線程
因爲現場的服務沒法遠程,只能經過現場人操做3d
經過jps查看現場java進程,查看到java進程idxml
能夠看到這裏除了jps有兩個java進程,這時先拼運氣,猜想第一個就是當前啓動不了的服務blog
經過jstack 5976 >> D:\\1.txt,查看當前進程的線程堆棧,發現有個runnable的進程
能夠看到GisInfoServlet請求gis服務,一直是運行的,直白的說請求就是同步的,阻塞了後續的工做部署
四、問題解決同步
經過在web.xml中注掉這個servlet確承認以正常啓動,後續排查這個gis服務沒法處理請求的緣由。這裏在web.xml中查找這個servlet經歷了一些波折,因爲沒法遠程,只能依靠現場人員來操做,現場人員你懂得,不是黑他們,就感受他們最基本的環境都是隻知其一;不知其二,現場的運維可想而知,我在家裏同步環境裏查找了web.xml沒有發現這個servlet,而後全工程搜索了這個servlet也沒有,這就懷疑人生了,結果仍是家裏的經驗豐富的資深運維說了現場的部署詳情,原來現場部署了兩個工程,一塊兒發佈的,這個servlet在另外一個工程裏,真的想砸(zao)死本身,珍愛生命,遠離現場。