昨天從svn上面更新了web代碼,更新之后項目就報錯了,很多地方都出現了紅叉,我仔細檢查了一遍,發現更新代碼之后我項目原來的jar包沒有跑到外面去了,于是我又重新add path,然后出現紅叉的地方就少了很多,但是還有一些地方報錯,是開頭的pakage包的紅叉沒有消失,我找開了build path,發現source里面原本的東西也不見了,于是我就重新添加進去,如下圖:
重新添加了之后開頭的紅叉已經消失了,不過我遇到了一個很奇葩的問題,就是還有兩個我修改過但沒提交的類開頭的紅叉還在,于是我把這兩個類備份之后再刪除重新添加,紅叉就消失了,這時代碼就沒報錯了。但是項目名稱上還是有紅叉,這是因為項目中還缺失這兩個庫,如下圖:
經過一系列的修改,終于沒錯了,重啟tomcat運行。還以為問題就這么容易的解決了,當我輸入地址正要訪問頁面的時候,竟然出現了404找不到頁面的錯誤,我的內心是崩潰的,怎么會這樣呢?項目明明沒有錯啊,代碼也沒錯啊,數據庫也可以正常連接,應該是不會報404的吧。于是我就按報404錯誤的問題逐一排查,首先,tomcat部署正確,環境變量也沒改,在tomcat目錄下的wapapp下也有我的項目(可能是更新代碼之前已經有的),所以應該不是tomcat的問題。數據庫能正常連接,sPRing-mvc文件也沒改,項目代碼也沒錯,應該是可以運行的啊,究竟是哪里出現了問題了呢?
于是我又百度了好久,終于讓我發現問題了,原來是.classpath文件的問題。右擊項目show in---->nagivator這時你會看到工程目錄下會出現許多.classpath等文件,這是因為別人提交代碼的時候把一些不必要的代碼也提交上去了,因為我跟別人的路徑不一樣,而我又更新了他的路徑文件,導致我的tomcat在掃描的時候找不到指定路徑所以就報404錯誤了。解決辦法:找到.classpath.mine文件,把里面的代碼全部復制,再找開.classpath文件,替換掉就行了。因為tomcat掃描的是.classpath文件,而我更新代碼了之后.classpath文件變成了別人的了,跟我原本的不一樣,所以原來路徑里面有的東西都跑了出來,而當我重新把路徑添加進去之后,系統就會自動生成.classpath.mine文件(如果之前沒有.classpath文件就會生成.classpath文件),這個路徑文件才是我正確的路徑文件,所以把.classpath.mine里的代碼替換掉.classpath里的代碼就ok了。
新聞熱點
疑難解答