問題緣由: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沒有報異常。