org.apache.catalina.loader.WebappClassLoader

 問題緣由:java

通常狀況下是tomcat下的包與項目裏的包重複加載了。那麼應該是這個jar包加載失敗致使應用程序啓動失敗。api

好比:tomcat

仔細查找下,發現應用程序WEB-INF/lib目錄下存在servlet-api.jar,同時tomcat的common/lib目錄下也存在servlet-api.jar。maven

若是是這樣的話: 能夠將項目裏的這些包(如servlet-api.jar)設置爲 provided。ide

問題處理:spa

例如,用maven 的話,能夠這樣設置:code

1 <dependency>
2    <groupId>javax.servlet</groupId>
3    <artifactId>javax.servlet-api</artifactId>
4    <version>3.0.1</version>
5    <scope>provided</scope>
6 </dependency>

這樣就代表程序依賴,但編譯的時候,不會將jar包一塊兒打包,以避免和tomcat的包產生衝突。blog

注:部署

要不是maven 項目的話,能夠這樣:servlet

刪除應用程序中WEB-INF/lib目錄下的servlet-api.jar,從新編譯打包部署,應用程序啓動成功而且tomcat沒有報異常。

相關文章
相關標籤/搜索