新手學習maven之啟動Tomcat報錯
使用maven時啟動Tomact報錯A child containerfailed during start
報錯資訊
筆者的這個專案是從使用dynamicweb project建立的專案(A專案)中移植過來的。之前A專案一切正常使用。
建立好maven專案之後,將A專案所有檔案複製過來(包括web.xml檔案),依據A專案中lib資料夾下面的jar包,配置好pom.xml檔案。啟動Tomcat報錯。
此時,筆者丈二和尚摸不著頭腦,明明在前面的專案能正常使用為什麼在這個上就不能使用呢?一切都是依照前面的專案來的。問題已經發生了,只好著手解決。筆者沒有導師教,一切靠自己摸索,如今寫這篇文章,是希望給後來者提供參考,少走彎路。
解決過程:
Web.xml中沒有任何配置,進行第一步匯入相關包就報錯。
Test:清理快取Project>>Clean。重啟Tomcat,跟新maven。沒效果,一樣報錯。
PS:有時會清理掉如下圖所指的資料夾
清理之後,會報找不到包的錯誤。重新加入就可以解決。
Test1:此時懷疑專案本身問題,最大的可能是web.xml配置檔案以及相關檔案,刪除web.xml,啟動Tomcat伺服器,問題沒解決。刪除所有專案保留pom.xml檔案。還是一樣報錯
Test2:前面2種方法沒解決問題,接下來重新上網搜資料。我懷疑是與Apache相關的包匯入錯誤。但是我匯入的包是前面在其他專案(非maven)中使用過的、驗證過的,不可能出錯。不過也要再次排除這種可能。重新將相關的包在maven中刪除。逐一排查。經過排查和重新建立maven專案,發現引入如下包就會發生錯誤,無法正常啟動Apache:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
對比其它專案,上面的包是必須的。
查資料有如下可能:maven下載的包出問題;
重新引入Spring—web包無法解決。重建新專案,重新引入,卻又不報錯。摸不著頭腦。
反反覆覆修改。累。問題依然沒解決。。。。。。。。。。。。。。。。。。。。。。。。。。。
反反覆覆更改程式碼,新建工程,查清楚原因了,引用的包的版本問題,改成較低的版本不報錯了,此時距離報錯開始到解決問題已過去2天。。。。。。
PS:希望本文能給看到此文章的讀者以幫助。少和筆者走一樣的彎路。