1. 程式人生 > >tomcat啟動成功,訪問tomcat成功,訪問頁面404

tomcat啟動成功,訪問tomcat成功,訪問頁面404

這個問題困擾了我很久,主要是思路方向錯了,所以始終都錯的。我的經驗也許不能幫到讀者,只是希望給自己留下印記,也給萬一跟我情況相似相同的朋友一個引導。

專案升級單點登入,只需要改個別配置檔案即可完成,升級其他專案的時候非常順利,不知道為何這次失敗的這麼奇怪:tomcat啟動成功,但是訪問頁面報錯404。

()PS:開始啟動失敗,報一個配置檔案裡的類找不到,我看了一眼這個配置檔案在我的這個web專案中沒有(我們用的是maven結構,實際上該檔案是在service專案中的),於是我以為這個配置檔案是不需要的,果斷給註釋了。然後啟動成功了。問題跟蹤了很久,最後證明就是這個配置檔案缺失造成的。)

1、首先懷疑是單點登入系統的問題,找相關的人看,人沒理我,也難怪,所有人都成功的,就我一個失敗的,人有信心是我的問題。

2、懷疑tomcat有問題,於是各種找tomcat的問題,還百度了各種跟我症狀一樣的情況。最後經過部署其他系統證明tomcat是無辜的。

3、由於修改之前沒有啟動過系統,便自己不確定是不是系統原有的問題,於是懷疑是原有系統固有的bug。最後經過同事的驗證,原有系統是好的。

4、於是確定跟我這次升級有關係了。

5、於是加了一個攔截器,斷點成功了,進入到springmvc的原始碼了,跑著跑著,404了。

6、我竟然有一絲懷疑是spring版本不一致的問題。當然很快就排除了

7、於是我把單點登入的攔截去掉,換回舊的版本的單點登入,啟動,仍然404。納尼!!竟然在同事那裡不報錯,在我這裡報錯!心裡有些不愉快了。。

8、於是把同事程式碼拷過來,放到我本地啟動成功了!此時此刻,我心裡想起來那個一開始被我註釋掉的配置檔案。

9、開啟同事程式碼(升級單點登入之前的舊程式碼),看到那個配置檔案舒舒坦坦的就在那放著。我心裡已經百分百確定這個問題只需要五分鐘就能結束了(啟動一次服務就要一分鐘,總得測試幾下)

10,把一開始被我刪除掉的配置檔案加回來,啟動,果然報錯了。於是我去檢視,果然這個檔案不存在,於是跟進老程式碼去看,這個缺失的類,是在升級的時候註釋掉的那個jar包裡的。這這這。。。那那那,我上次升級的時候是怎麼解決的呢?於是看了一眼上次升級的那個系統,nnd,我竟然是自己建了一個相同的類,把那個舊jar包的類寫到了自己的系統中。。。呃呃呃,不得不感嘆,當時的我是怎麼那麼聰明!故伎重演,解決完事!

總結:還是那句話,越是難以解決、越是詭異的問題,往往越是低階問題;另外,解決問題的思路、方向,如果反了,就永遠沒頭了。如果是像我這種老系統正常,改了一點就出了詭異問題的情況,最簡單的辦法是把舊系統跑一遍,如果一切正常,那麼檢查修改點,如果不那麼明顯,那麼就一點一點的往上加,總會加到一點發生錯誤的。此刻就是問題定位點了。