# A child container failed during start

排查方案,把.xml 内无关的所有注释掉,启动程序,如果成功了,就一点点代码还原 + 重启,直至找到致命的那行代码!(比如 web.xml、pom.xml)

可能引发错误的问题,如果导入了 tomcat7 的坐标又导入了 servlet-api 坐标那么可能就会发生错误

1.servlet-api 包冲突

  • 出现这个问题的原因是导入了 servlet-api 包,与 tomcat7 的依赖包 servlet-api 冲突
  • 检查 pom.xml 是否导入 servlet-api
  • 加上 <scope>provided</scope > 之后再次运行成功

问题引出:在 SpringMVC 项目中如果我们直接删除了 Servlet-api 这个坐标后可能会引发启动时的报错如下

无法访问javax.servlet.ServletException

此时我们需要加上 Servlet-api 这个一样然后将其在打包时排除即在下面再添加一项 <scope>provided</scope>

具体如下:

<!--servlet-api-->
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>servlet-api</artifactId>
   <version>2.5</version>
   <scope>provided</scope>
</dependency>