当Tomcat容器启动web项目时常会发生这个错误,但是控制台并没有输出详细的问题情况。
问题需要一个通用的解决思路,而不是随便去找一个什么log4j没有在web.xml进行配置这样的理由搪塞过去。
我要是不使用log4j呢?就能保证我的listeners一定启动的没有问题吗?显然不能。
我们时常会忽略服务启动时,控制台最开头输出的一系列环境提示:
5-Jan-2022 02:52:10.201 警告 [main] org.apache.catalina.core.StandardContext.setPath 上下文路径必须是空字符串或以'/'开头,而不能以'/'结尾。路径[/]不符合这些条件,已更改为[]
15-Jan-2022 02:52:10.220 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.54
15-Jan-2022 02:52:10.220 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Sep 28 2021 13:51:49 UTC
15-Jan-2022 02:52:10.220 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.54.0
15-Jan-2022 02:52:10.220 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 10
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Program Files\Java\jdk1.8.0_261\jre
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 1.8.0_261-b12
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Oracle Corporation
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\storm\.SmartTomcat\ToDayEatWhatServer\ToDayEatWhatServer
15-Jan-2022 02:52:10.221 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Users\storm\.SmartTomcat\ToDayEatWhatServer\ToDayEatWhatServer我们如果去翻阅Tomcat的安装目录下的logs是找不到我们想要的失败详细信息的,但是我们可以把以上输出的CATALINA_BASE的路径信息复制一下,就可以转到容器为web项目创建的文件夹。在其中翻阅,就可以找到logs,再根据修改时间进行排查,就可以从这些日志文件中窥见问题的真正原因。
最后的原因是Maven项目的target文件夹下的classes中没有把resouse下的配置*.xml加入进去,在pom.xml的build中加上这些文件,重新加载maven,就解决了问题。
授人以鱼不如授人以渔啊!
环境:IDEA社区版,Tomcat9,SmartTomcat插件
我见青山多妩媚,料青山见我应如是。
版权声明:本文为qq_45929064原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。