You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSF 2.2 Hello World项目部署报404错误求助

排查JSF项目Run on Server后404错误的解决方案

嘿,刚上手JSF遇到这种404真的挺闹心的,我帮你一步步捋清楚可能的问题和解决办法:

1. 先确认项目是否正确部署

  • 打开Tomcat安装目录下的webapps文件夹,看看有没有和你项目上下文根同名的文件夹
  • 进入这个项目文件夹,检查index.xhtml是不是在根目录下(别放到WEB-INF里了,那是受保护的目录)
  • 回到Eclipse的Servers视图,确认你的项目已经添加到Tomcat实例中,并且Tomcat的状态是「Started」

2. 检查web.xml的关键配置

作为Hello World级的JSF项目,web.xml里至少要配置JSF核心Servlet和欢迎页,否则Tomcat找不到正确的处理入口。对照你的web.xml,看看有没有这些内容:

<!-- 欢迎页配置,确保index.xhtml在列表首位 -->
<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

<!-- JSF核心Servlet配置(以Mojarra为例) -->
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

要是缺了Faces Servlet的映射,Tomcat根本不知道该用JSF容器处理.xhtml文件,自然会返回404。

3. 验证访问路径是否正确

Eclipse右键Run on Server后打开的浏览器URL可能有问题:

  • 正确的URL格式应该是:http://localhost:8080/[你的项目上下文根]/index.xhtml
  • 检查项目上下文根:右键项目 → Properties → Web Project Settings,查看「Context root」的值,确保URL里的路径和这个完全一致
  • 如果直接访问项目根路径(比如http://localhost:8080/HelloJSF/),得确保web.xml里的欢迎页配置正确,Tomcat才会自动跳转到index.xhtml

4. 清理Tomcat缓存并重新部署

有时候缓存会导致部署异常,试试这步:

  • 在Eclipse的Servers视图,右键你的Tomcat实例 → Clean...,清理Tomcat的工作目录
  • 然后右键项目 → Run As → Run on Server,重新部署一次

5. 检查环境兼容性

  • 确认Tomcat 8和Eclipse Luna的兼容性(Luna对Tomcat 8的支持没问题,但要确保Eclipse安装了JSTL/JSF相关的插件)
  • 检查Tomcat安装目录的路径,别包含中文、空格或特殊字符,否则可能导致部署失败

如果以上步骤都试过还是不行,可以把你的web.xml完整内容和浏览器里的错误URL贴出来,我再帮你细化排查!

内容的提问来源于stack exchange,提问作者Geth V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:57:09