
嚴重: Failed to process JAR found at URL [/StudentLeave] for ServletContainerInitializers for context with name [{1}] java.io.IOException: java.lang.ClassCastException: Cannot cast org.springframework.web.SpringServletContainerInitializer to javax.servlet.ServletContainerInitializer at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:201) at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:157) at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1577) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1281) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5405) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:677) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1942) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassCastException: Cannot cast org.springframework.web.SpringServletContainerInitializer to javax.servlet.ServletContainerInitializer at java.lang.Class.cast(Class.java:3369) at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:193) ... 19 more
最近有個項目啟動總是報這個錯誤,tomcat版本使用的是Apache Tomcat/7.0.65,(以前能正常運行,后來使用該項目出現此問題,把tomcat重新解壓后解決了) 。
經過網上查詢知道是servlet jar包版本和tomcat不匹配的原因, 一開始把servlet降到2.5 ,又會遇到其他問題, 后來干脆把tomcat 升級到8.0.24版才OK,(我JDK使用的是jdk1.8.0_91版本)。
網上也有其他人遇到這種問題, 有的是降servlet版本,配合tomcat7.0 + jdk1.7。 所以都統一使用最新版本就不會有這么多問題。

<!-- 添加Servlet支持 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> </dependency> <!-- <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> -->