關於專案釋出到雲伺服器Tomcat無法正常執行的部分原因
阿新 • • 發佈:2019-01-09
最近在用java寫後端程式連結資料庫的時候,發現專案在本地執行連結與伺服器資料庫沒問題,但是部署到雲伺服器Tomcat訪問雲伺服器資料庫的時候就無法正常訪問,換各種方式都不行,最後在關鍵位置都返回結果分析後發現,伺服器tomcat專案下沒有匯入支援的第三方jar包,比如JDBC,C3P0等。但是自己手動匯入也無法正常執行。折騰了好久以後找出了原因及解決辦法。
第一種解決辦法:
手動匯入相關jar包到 -> ../tomcat/webapps/專案名/WEB-INF/lib下,但是此時再次訪問依然會出現相同的錯誤,此時還需進入Tomcat管理頁面,手動點選自己的專案下的Reload按鈕,讓伺服器重新匯入一下里面的各種程式及資原始檔。此時再次訪問便可以成功。
第二種解決辦法:
仔細分析了一下原因,其實是這樣的:見圖:
由於MyEclipse新建一個Web工程時會預設在根目錄(和src同級的目錄)下建一個lib資料夾並加入jsp和servlet的一些jar包,所以在匯入第三方jar包時很自然就會放到裡面去了,但是當你把這個工程匯出為一個.WAR包放入到雲伺服器上執行的時候,解壓後的資料夾裡面並沒有這些jar檔案,所以不能夠找到這些支援檔案,從而執行出錯。此時可以選擇方法一,但這並不方便,雖然也可以解決問題。
後來我嘗試了把原來匯入的jar包刪了,然後再次在WebRoot/WEB-INF/lib下匯入這些支援jar包,然後同樣的方式匯出為WAR包放到伺服器,此時便可以正常運行了。
望可以幫助到遇見同樣麻煩的各位,當然還可能有各種其他原因和對應的解決方案,在此僅提供一種參考。