当前位置: 代码网 > 服务器>服务器>Tomcat > tomcat启动异常:子容器启动失败(a child container failed during start)

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

2024年06月02日 Tomcat 我要评论
在学习过程中,出现这个问题,上网查了一下,总结以下几种解决方案,并找出自己的问题。1、没有清理之前maven项目的历史。解决方法:执行clean命令,然后重新启动项目。操作:添加maven helpe

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

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异常子容器启动失败内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com