Ubuntu Tomcat遇到404错误怎么解决
导读:Ubuntu 上 Tomcat 出现 404 的排查与修复 一 快速自检 确认服务已运行:sudo systemctl status tomcat9;如未运行,执行 sudo systemctl start tomcat9。 核对访问地址...
Ubuntu 上 Tomcat 出现 404 的排查与修复
一 快速自检
- 确认服务已运行:sudo systemctl status tomcat9;如未运行,执行 sudo systemctl start tomcat9。
- 核对访问地址与端口:默认是 http://localhost:8080;如使用 apt 安装,配置文件在 /etc/tomcat9/,部署目录为 /var/lib/tomcat9/webapps/。
- 查看实时日志,优先关注 catalina.out:tail -f /var/log/tomcat9/catalina.out。
- 检查端口是否被占用:ss -tlnp | grep :8080 或 netstat -tlnp | grep :8080。
- 若部署了应用,确认 webapps/ROOT/ 存在且包含默认首页(如 index.html/index.jsp),或使用正确上下文路径访问:http://localhost:8080/yourapp。
二 常见原因与对应修复
- 应用未部署或上下文路径错误:将 WAR 放到 /var/lib/tomcat9/webapps/ 会自动解压;访问 http://localhost:8080/应用名/。如需根路径访问,部署到 ROOT(重命名 WAR 为 ROOT.war 或解压到 ROOT 目录)。
- server.xml 配置异常:检查 /etc/tomcat9/server.xml 中 是否被占用或改动;如需改端口,修改后重启:sudo systemctl restart tomcat9。
- 欢迎页或静态资源缺失:确认 webapps/ROOT/ 目录及内容完整(不少 404 是因为 ROOT 为空或被误删)。
- 权限问题:确保 Tomcat 运行用户(如 tomcat 或 www-data)对 webapps/、logs/ 及解压后的应用目录有读取权限;必要时执行 chown/chmod 修正。
- 反向代理配置不当:若使用 Nginx/Apache,核对代理目标、端口与路径前缀是否一致,避免把请求代理到错误上下文。
- URL 大小写或路径拼写错误:Linux 路径区分大小写,确认 /** 与 /index.jsp 等路径无误。
三 日志定位与关键线索
- 先看 catalina.out 与 localhost.< 日期> .log:定位是“应用未部署成功”“资源不存在”还是“过滤器/Servlet 映射不匹配”。
- 若日志提示 JAVA_HOME 未正确设置 或指向 JRE 而非 JDK,需在 /etc/default/tomcat9 中设置 JAVA_HOME 为 JDK 路径(如 /usr/lib/jvm/java-11-openjdk-amd64),然后重启。
- 若看到 ClassNotFound/NoClassDefFoundError 且伴随权限拒绝,检查 JDK/JRE 库目录的读取权限(例如对 jre/lib 下的 JAR 补上读权限:sudo chmod a+r -R jre/)。
- 若日志显示应用启动成功但访问仍 404,多半是 应用未部署到正确上下文 或 默认欢迎页缺失。
四 针对不同安装方式的要点
- 使用 apt 安装(如 tomcat9):配置集中在 /etc/tomcat9/;部署目录 /var/lib/tomcat9/webapps/;日志 /var/log/tomcat9/;管理界面 /manager/html 需在 /etc/tomcat9/tomcat-users.xml 配置用户与角色后访问。
- 手动安装(解压版):确认 CATALINA_HOME/CATALINA_BASE 与 JAVA_HOME 正确;部署到 webapps/ROOT/ 或自定义目录;必要时在 conf/server.xml 配置 ;日志位于 logs/。
- 使用 IDE(如 Eclipse)集成 Tomcat:如遇到启动后访问 8080 仍 404,可尝试在 Servers 视图中移除已部署项目、清理配置并重新添加与启动,以恢复正常部署流程。
五 一条最小化验证流程
- 部署测试页:echo “
OK
” | sudo tee /var/lib/tomcat9/webapps/ROOT/index.html - 重启服务:sudo systemctl restart tomcat9
- 本地验证:curl -I http://localhost:8080/(应返回 HTTP/1.1 200)
- 远程验证:在浏览器访问服务器 IP:8080;若仍 404,检查云服务器安全组/防火墙是否放行 8080,并复核上面步骤。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Tomcat遇到404错误怎么解决
本文地址: https://pptw.com/jishu/789705.html
