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

JSF应用index.xhtml资源找不到,404请求失败问题求助

解决JSF 2.2应用的404请求未找到错误

这种突然出现的404问题确实让人头疼,结合你描述的情况——5分钟前还正常,新增空白xhtml后出问题,/faces/*路径也失效,我整理了几个排查方向和解决方法:

1. 先确认访问URL是否正确

你提到index.xhtml在WebContent文件夹下,那对应的访问路径要匹配你的Servlet映射:

  • 如果web.xml里配置的是/faces/*映射,访问URL应该是:http://localhost:8080/你的应用上下文名/faces/index.xhtml
  • 如果新增的空白页面是test.xhtml,那路径就是/faces/test.xhtml
    别漏掉应用上下文名,也别写错页面文件名(注意大小写,服务器对文件名大小写敏感)。

2. 检查web.xml的JSF Servlet配置

之前正常的话,大概率是不小心改动了web.xml的配置。确保FacesServlet的映射正确配置:

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup> <!-- 确保启动时加载Servlet -->
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    <url-pattern>*.xhtml</url-pattern> <!-- 建议加上这个,直接访问xhtml更方便 -->
</servlet-mapping>

如果之前的配置被误删或修改,恢复成上面的结构试试。

3. 排查服务器部署与日志

  • 先看看服务器控制台有没有报错信息,比如FacesServlet初始化失败、类缺失、配置文件错误等——这些都会导致JSF无法正常处理请求,返回404。
  • 尝试重新部署应用:先undeploy掉当前应用,然后clean项目(比如IDE里的Project Clean,或者Maven执行mvn clean),再重新部署到服务器上。有时候部署缓存会导致文件没有同步。

4. 检查空白xhtml的基本结构

完全空白的xhtml页面可能导致JSF无法正确解析,建议给空白页面加上最基础的JSF标签结构:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Blank Page</title>
    </h:head>
    <h:body>
        <!-- 可以留空,但结构要完整 -->
    </h:body>
</html>

没有正确的JSF命名空间和根元素,服务器可能无法识别这是一个JSF页面,从而返回404。

5. 清理IDE缓存

有些IDE(比如Eclipse、IntelliJ)的缓存可能导致文件没有同步到服务器。试试:

  • 刷新项目(右键项目 → Refresh)
  • 清理IDE的缓存(比如Eclipse的File → Clean,IntelliJ的File → Invalidate Caches...)
    然后重新部署应用。

按照这个顺序排查,应该能找到问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:21:11