Tomcat 10.1.8部署WAR包报错:请求资源不可用求助
解决Tomcat 10.1.8部署WAR包后资源找不到的报错
这个报错本质是Tomcat无法定位你要访问的资源,针对新手,按以下步骤排查解决:
1. 确认WAR包是否被正确解压
- 启动Tomcat后,检查
webapps目录下是否生成了与WAR包同名的文件夹(比如WAR包名为demo.war,应生成demo文件夹)。如果未生成:- 打开
logs/catalina.out日志,查找解压失败的具体原因(比如WAR包损坏、目录权限不足)。 - 手动用解压工具将WAR包解压到
webapps目录,确保解压后的文件夹内包含WEB-INF目录(该目录下需有web.xml等核心配置文件)。
- 打开
2. 检查访问路径是否正确
- 若你的WAR包不是
ROOT.war,访问路径必须带上应用名称,比如http://localhost:8080/你的应用名/(注意末尾的斜杠),不能直接访问http://localhost:8080/。 - 确认应用内存在首页文件(如
index.html、index.jsp),要么在web.xml中配置了对应的欢迎页面,要么该文件在Tomcat默认的欢迎页面列表内。
3. 排查端口占用问题
- 打开
conf/server.xml,查看Connector标签的port值(默认是8080),用命令检查端口是否被其他程序占用:- Windows:执行
netstat -ano | findstr "8080" - Linux/Mac:执行
lsof -i :8080
- Windows:执行
- 如果端口被占用,修改
port值后重启Tomcat。
4. 注意Tomcat 10的API兼容性
- Tomcat 10.x基于Jakarta EE API(包前缀为
jakarta.*),不再兼容旧版Java EE的javax.*包。如果你的WAR包是基于Servlet 4.0及以下版本开发的,直接部署会出现问题:- 要么将代码中所有
javax.*替换为jakarta.*后重新打包部署。 - 要么更换为Tomcat 9.x版本(兼容
javax.*系列API)。
- 要么将代码中所有
5. 检查目录权限
- 确保运行Tomcat的用户对
webapps目录拥有读写权限:- Windows:右键
webapps目录,在「安全」选项卡中为当前用户添加读写权限。 - Linux/Mac:执行
chmod -R 755 webapps调整目录权限。
- Windows:右键
6. 查看日志定位细节问题
- 重点查看
logs目录下的catalina.out和localhost.log文件,里面会记录更具体的报错信息(比如类加载失败、配置文件语法错误等),根据日志提示针对性解决问题。
报错截图:Tomcat资源未找到报错页面
内容的提问来源于stack exchange,提问作者feye
相关产品推荐
相关产品推荐

