tomcat启动异常:子容器启动失败(a child container failed during start)

 更新时间:2023年03月24日 09:34:03   作者:万丈红尘一粒灰  
这篇文章主要介绍了tomcat启动异常:子容器启动失败(a child container failed during start),如果你也遇到了这个问题,那么这篇文章应该可以帮助到你,一起来看看吧

在学习过程中,出现这个问题,上网查了一下,总结以下几种解决方案,并找出自己的问题。

1、没有清理之前maven项目的历史。

解决方法:执行clean命令,然后重新启动项目。

操作:添加maven helper插件后,右键→run maven→clean

4180e56a3c954e22afc5584a80a68aed.jpg

ps:关于maven项目历史是啥我不太了解。

2、pom.xml文件中servlet-api依赖导入问题。

解决方法:在依赖中添加<scope>标签,内容为provided。

示例:<scope>provided</scope>

76a5631cbd224d84b1924c9b8573c705.jpg

3、web.xml中servlet与servlet-mapping的配置错误。

这个错误在用xml配置Servlet时可能出现,而Servlet从3.0版本以后支持@WebServlet注解配置url,所以这个问题不常见了。

解决方法:检查web.xml文件中配置,或者删掉这部分内容,改用@WebServlet注解配置。

一个配置正确的样例如下:

注意url-pattern内容的斜杠

3561606cb9df4be3a6f82eea24ce2322.jpg

 或改为注解配置:

@WebServlet("/demo13")

4、url-pattern格式错误。

url-pattern配置简略知识点总结:

(1)一个Servlet(实为继承Servlet的类)可以配置多个url-pattern。

@WebServlet(urlPattern={"/ex01","/ex02"})

(2)urlPattern有四种配置规则。

精准匹配:@WebServlet("/demo/ex01")

目录匹配:@WebServlet("/demo/*")

扩展名匹配:@WebServlet("*•do")

任意匹配:@WebServlet("/*")或@WebServlet("/")

除了扩展名匹配,其他匹配方式都需要有斜杠("/"),但最前面的斜杠容易被忽略。

5、自己的问题

了解以上各种问题之后,我检查了自己的代码,最终发现自己犯的错误有两个。

(1)忘记了添斜杠

34ac1dd4271f48fc8f42f89634190151.jpg

在做urlPattern配置练习时,多个路径配置中,忽略了第二个的斜杠。有点尴尬,哈哈…

(2)路径名重复

在添加完斜杠后,运行tomcat还是出错了,我检查了又检查,最后终于发现一个可能的问题,经过实验之后确定了自己的猜测。

相信细心的伙伴已经发现,明明是Demo07,但路径却是/demo01与/demo02。

我当时为了省事随便取了两个名字,而这两个路径名在之前学习的案例就已经使用了,所以启动时报错了。

经过改动,tomcat启动终于正常。

dec8a7e697494dc68eaacd553d78bc55.jpg

 

075a90e9f48c46d9923f0f9ae0a0637c.jpg

6、一点补充

写这篇文章时,为了拍第三个问题的示例图遇到的情况,如果某个Servlet已经用了web.xml配置urlPattern,就不可以再用注解配置了,一定要把web.xml中的相关内容删干净才可以。

到此这篇关于tomcat启动异常:子容器启动失败(a child container failed during start)的文章就介绍到这了,更多相关tomcat异常子容器启动失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Tomcat请求处理流程与源码浅析(最新推荐)

    Tomcat请求处理流程与源码浅析(最新推荐)

    这篇文章主要介绍了Tomcat请求处理流程与源码浅析,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • centos环境下使用tomcat 部署SpringBoot的war包

    centos环境下使用tomcat 部署SpringBoot的war包

    这篇文章主要介绍了centos环境下使用tomcat 部署SpringBoot的war包的相关资料,本文通过实例代码给大家讲解的很详细,对tomcat 部署SpringBoot 的war包相关知识感兴趣的朋友一起看看吧
    2021-05-05
  • servlet和tomcat_动力节点Java学院整理

    servlet和tomcat_动力节点Java学院整理

    这篇文章主要介绍了servlet和tomcat,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Tomcat出现假死原因及解决方法

    Tomcat出现假死原因及解决方法

    线上环境因为有个接口内部在错误的参数下,会不断生成字符串,导致OOM,在OOM之后服务还能正常运行,但是发送的Api请求已经没有办法响应了,本文小编给大家详细介绍了Tomcat出现假死原因及解决方法,需要的朋友可以参考下
    2023-11-11
  • tomcat报错:地址localhost:8080已在使用中的解决方法

    tomcat报错:地址localhost:8080已在使用中的解决方法

    今天使用tomcat发现一个问题,本文就介绍一下报错地址localhost:8080已在使用中的解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-05-05
  • Tomcat 5.5 数据库连接池配置

    Tomcat 5.5 数据库连接池配置

    我用的数据库是MySQL5.5,所以首先要把MySQL的JDBC驱动程序拷贝到Tomcat安装目录的/common/lib下和你自己网站的/WEB-INF/lib下。
    2009-08-08
  • Tomcat安装与配置Native APR模式的教程

    Tomcat安装与配置Native APR模式的教程

    APR是Apache HTTP服务器的支持库,提供了一组映射到下层操作系统的API。通过 tomcat-native 库,使tomcat运行时通过APR更多的调用本地API,达到提升性能的目的。下面这篇文章详细介绍了Tomcat安装与配置Native APR模式的教程,需要的朋友可以参考借鉴,一起来看看吧。
    2017-02-02
  • 详解tomcat热部署和热加载的方法

    详解tomcat热部署和热加载的方法

    这篇文章主要介绍了详解tomcat热部署和热加载的方法的相关资料,这里提供两种tomcat热部署和热加载的方法,需要的朋友可以参考下
    2017-08-08
  • 关于Keytool配置 Tomcat的HTTPS双向认证的问题

    关于Keytool配置 Tomcat的HTTPS双向认证的问题

    Keytool是一个Java数据证书的管理工具, Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中,这篇文章主要介绍了Keytool配置 Tomcat的HTTPS双向认证问题,需要的朋友可以参考下
    2022-06-06
  • Centos7.3下Tomcat8的安装配置教程

    Centos7.3下Tomcat8的安装配置教程

    这篇文章主要为大家详细介绍了Centos7.3下Tomcat8的安装和配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论