org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletCon
2015-03-05 15:39
661 查看
严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 more Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1670) at org.apache.catalina.startup.ContextConfig.getServletContainerInitializers(ContextConfig.java:1652) at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1562) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more
此类问题的多半是web.xml配置有问题,或者是pom.xml中的jar包冲突。
根据关键信息org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer
得知基本是ServletContainerInitializer类版本不一致造成的。
经过排查,是由于我在pom.xml中引入的javaee jar包有问题
<dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency>此处的javaee-api与tomcat的javaee-api冲突
所以可以采取删除这个jar包引用,或者加上关键字
<dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <scope>provided</scope> <version>7.0</version> </dependency>这个关键字的设置是起到定义jar包生存周期的作用,这个设置认为在环境中已经存在这个jar包了就不再部署了。
所以这个关键字对于解决jar包冲突能起到很好的作用。
相关文章推荐
- org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletCon
- org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletCon
- org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.Servle...
- Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer错误解决办法
- 在maven项目中使用apache cxf中遇到异常 java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter异常
- org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter报错
- maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet
- java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servle
- org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
- org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servle
- org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet
- Caused by:....SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInit
- SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer
- .ShiroHttpServletRequest cannot be cast to org.springframework.web.multipart.MultipartHttpServletReq
- cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
- maven SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializ