Windows 10下Apache Tomcat 9.0启动后访问返回404错误问题咨询
问题根因分析
从你提供的Tomcat错误日志来看,核心报错为java.lang.ClassNotFoundException: javax.servlet.ServletContainerInitializer,该类是Tomcat核心依赖包servlet-api.jar中的标准类,加载失败直接导致webapps下的默认欢迎页、Manager、docs等应用全部部署失败,因此访问时返回404。
加载失败的主要原因如下:
- Tomcat被安装在
C:\Program Files系统目录下,Windows对该目录默认有严格的读写权限限制,Tomcat运行时没有足够权限读取lib目录下的核心jar包,导致类加载失败,是该场景下的最高概率原因。 - 少数情况为Tomcat安装包不完整,lib目录下缺失核心servlet-api.jar文件。
解决方案
方案1:更换安装目录(优先选择,操作最简单)
- 完全卸载当前已安装的Tomcat 9程序
- 在C盘非系统权限目录下新建无中文、无特殊字符的文件夹,例如
C:\Tools\Tomcat9 - 重新运行Tomcat安装程序,选择新建的文件夹作为安装路径,安装完成后启动服务即可正常访问。
方案2:给原有目录配置读写权限(不想更换安装路径时使用)
- 右键点击
C:\Program Files\Apache Software Foundation\Tomcat 9.0文件夹,选择【属性】-【安全】选项卡 - 点击【编辑】按钮,在组或用户名列表中选择Tomcat服务运行的账户,默认为SYSTEM或当前Windows登录账户
- 给该账户勾选【完全控制】权限,依次点击确定保存所有配置
- 重启Tomcat服务即可。
方案3:排查核心包完整性
如果前两个方案执行后仍有问题,检查Tomcat根目录下的lib文件夹是否存在servlet-api.jar文件,若缺失可以从官方原版Tomcat 9压缩包中提取对应文件放入lib目录,重启服务即可。
内容的提问来源于stack exchange,提问作者Scott Parrish
相关产品推荐
相关产品推荐

