You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SSH+MVC Web应用部署后出现HTTP Status 404问题求助

解决远程Tomcat部署后JSP 404问题的排查步骤

我来帮你捋捋这个头疼的404问题——本地跑完全正常,一部署到远程就找不到JSP,大概率是部署环节或者服务器配置的小疏漏,咱们一步步排查:

  • 先确认远程服务器上的文件结构
    登录远程服务器,找到Tomcat的webapps目录,看看你的项目是不是直接在webapps/ch21/下面?里面必须要有WEB-INF文件夹、index.jsp这些文件才行。有时候MyEclipse导出WAR包或者直接部署时,会不小心把项目嵌套一层(比如变成webapps/ch21/ch21/...),这时候访问路径就完全错了,得把多余的一层删掉。

  • 核对访问URL是否正确
    你访问的地址是不是http://服务器IP:端口号/ch21/index.jsp?要注意几个点:

    • 远程Tomcat有没有改端口(默认是8080,如果改了就得用新端口);
    • 项目部署时的上下文路径是不是ch21?可以看远程Tomcat的启动日志,里面会有类似INFO: Deploying web application directory ch21的记录,这就说明上下文路径是ch21,访问时必须带上。
  • 检查web.xml的配置细节
    打开你的web.xml,看看有没有配置默认欢迎页?比如有没有这段代码:

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    

    要是没配的话,直接访问http://服务器IP:端口/ch21/会找不到,但直接访问index.jsp应该能正常打开。如果连直接访问都不行,那基本还是文件结构的问题。另外,要确保web.xml没有语法错误,比如标签没闭合、属性写错,这些都会导致项目部署失败,Tomcat启动日志里会有相关报错。

  • 查看远程Tomcat的日志文件
    去远程服务器的Tomcat安装目录/logs下,重点看这几个日志:

    • catalina.out:如果项目部署失败,这里会有具体的错误信息,比如依赖缺失、类加载失败;
    • localhost_access_log.*.txt:这里会记录你所有的访问请求,能帮你确认是不是访问路径写错了;
    • localhost.log:里面会有JSP编译、访问相关的错误信息。
  • 验证远程服务器的JDK版本
    Tomcat 6和JDK 1.6是匹配的,但要确认远程服务器用的也是JDK 1.6。在远程服务器上执行java -version命令,看看版本是不是和本地一致,版本不匹配可能会导致项目无法正常加载。

  • 检查文件权限
    远程服务器上Tomcat运行的用户,有没有访问ch21文件夹及里面文件的权限?如果权限不够,Tomcat读不到JSP文件,也会返回404。可以查看文件夹的权限设置,确保Tomcat用户有读权限。


内容的提问来源于stack exchange,提问作者L. Linda

火山引擎 最新活动