雲服務器Tomcat版本升級(Tomcat6升級至Tomcat7和Tomcat8)問題總結


由於合作甲方新項目的原因,需要將Tomcat6升級到Tomcat8。一開始我也是一頭霧水,感覺要涉及到的東西應該會很多。因為老系統遇上新版本難免會出現版本不兼容的情況,由於只有部署包,如果出現需要更改代碼的問題,那就蛋疼了。

        簡單介紹下環境:

        舊版本:Tomcat6.018,jdk1.6,windows 2008 r2

        新版本:Tomcat8.045,jdk1.8,windows 2008 r2

        1.安裝jdk1.8
        直接安裝並配置環境變量即可,若要在jdk1.6和jdk1.8直接切換,可參考我的另一篇文章《windows下jdk版本切換(安裝多個版本jdk) 》。  
        2.安裝Tomcat8.0
        安裝過程中注意端口的更換,若要同時運行Tomcat6和Tomcat8,則需要更換端口,例如我更換的:

        8080-->8088
        8005-->8015
        8009-->8019

        端口號可在tomcat8.0\conf下的server.xml文件中修改,若不需要同時使用tomcat6和tomcat8,則不需要更改端口。

        打開http://localhost:8088,若出現Tomcat界面,說明安裝成功。接下來可以部署項目了。

        3.部署項目問題
         按照正常步驟將項目拷貝到webapps目錄下,注意項目中配置文件的地址端口要由8080更改到8088(若安裝過程中Tomcat8端口未更改則不用更改,自己注意就好),然后我就正常訪問項目地址,結果悲劇了,報錯404,我們知道404是項目路徑出錯的問題。然后我打開Tomcat Manager,發現項目根本沒有被啟動,如下圖所示(打碼的都是項目名字,不影響閱讀):


        然后去百度出錯的原因,結果全是沒用的,Google上說的倒是很細致,但是並不能解決我的問題,Google到的是解決no TLDs的問題,然后趕緊看下Tomcat中的log日志,日志如下:


        初步斷定系統找不到文件,但是項目在Tomcat6上運行時正常的,不可能出現項目文件配置的問題,所以我斷定應該是jar包版本不兼容的問題,只好一個一個排查。

        系統所使用的是ssh框架,所以第一步先從spring的jar包版本入手了,發現使用的是spring3.1,查了一下Tomcat8兼容spring4.0以上版本(Tomcat7也不兼容spring3.1),只好換jar包,嘗試了spring4.1和spring4.3,都是可以使用的。替換哪些jar包,主要看項目中使用到哪些了,也有的jar包被淘汰或被嵌入到別的jar包中了,更換完jar包后,要重啟Tomcat8,發現項目可以正常發布並訪問了。所幸只是Spring版本不兼容,沒遇到需要更改代碼的問題,更換版本可以直接解決。遇到別的問題也不要急,升級Tomcat其實也不難,遇到問題縷清思路,看看是Tomcat的問題還是項目代碼的問題,然后再一個一個解決。

        之后我又嘗試將Tomcat版本換到7,過程也是一樣的,尤其注意jar包兼容性的問題。

        4.部署過程中遇到的另一個不小心造成的問題
        在更改配置文件時不小心刪掉了半個<Licence></Licence>標簽,導致空指針異常,如下圖:


        其實看到了這個問題是嚇到了我的,因為一看空指針異常,我的第一印象是代碼問題,不是我害怕改代碼,是項目代碼比較久遠,加上我手頭並沒有源碼。仔細看了一下看到Config就想到配置文件的問題,仔細檢查了配置文件,才發現之前手抖刪掉了半個標簽。

        有問題大家多留言交流。謝謝閱讀,歡迎留言。
————————————————
版權聲明:本文為CSDN博主「knqi007」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/knqi007/article/details/76259572


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM