首先确认访问的URL路径是否与部署的应用路径一致。例如,若应用部署在webapps/myapp目录下,访问URL应为http://服务器IP:8080/myapp/(注意结尾的斜杠)。若URL拼写错误(如多输/少输字符)或路径不匹配,会直接导致404错误。
webapps目录作为应用部署路径,确保WAR文件(如myapp.war)已上传至该目录。webapps目录下是否有对应的解压文件夹(如myapp,与WAR文件同名)。若没有,可能是Tomcat未成功解压WAR文件,需重新上传或手动解压。server.xml(位于/etc/tomcat/或/opt/tomcat/conf/)中的<Connector>端口(如改为8081),需确保访问URL中的端口号与配置一致。netstat -tuln | grep 8080 # 替换为实际端口
若端口被占用,可修改server.xml中的端口号或终止占用进程(kill -9 进程ID)。Tomcat的日志文件(通常位于/var/log/tomcat/或/opt/tomcat/logs/)会记录404错误的详细信息。重点查看catalina.out或localhost.log,寻找与404相关的线索(如“File not found”“Cannot find context”)。例如,日志中若提示“Cannot find application at /myapp”,说明应用未正确部署。
WEB-INF/web.xml文件(部署描述符)需正确配置。若应用有自定义Servlet或URL映射,需检查<servlet-mapping>和<url-pattern>是否正确。<url-pattern>为/api/*,则访问路径应为http://服务器IP:8080/myapp/api/接口,而非直接访问/myapp/。Tomcat运行用户(通常为tomcat)需对应用目录及文件有读取权限。使用以下命令修改权限:
sudo chown -R tomcat:tomcat /var/lib/tomcat/webapps/myapp # 替换为实际应用路径
sudo chmod -R 755 /var/lib/tomcat/webapps/myapp
权限不足会导致Tomcat无法访问应用资源,从而返回404错误。
完成上述排查后,重启Tomcat使配置生效:
sudo systemctl restart tomcat
重启后再次访问URL,确认404错误是否解决。
通过以上步骤逐一排查,可快速定位并解决Debian上Tomcat的404错误。若问题仍未解决,建议结合日志中的具体错误信息进一步分析。