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

Tomcat技术求助:无法访问默认页面及JSF应用users.xhtml

解决Tomcat在Eclipse Run on Server模式下的404问题

看起来你遇到的问题是Eclipse托管启动Tomcat时无法访问默认页和JSF页面,但手动用startup.bat启动一切正常——这个差异说明问题大概率出在Eclipse对Tomcat的配置或者项目部署环节,咱们一步步来排查:

1. 检查Eclipse中Tomcat的服务器部署位置配置

这是最常见的原因,Eclipse默认会把Tomcat的部署目录指向工作空间的临时文件夹,而不是Tomcat安装目录的webapps:

  • 打开Eclipse的「Servers」视图,找到你的Tomcat服务器,右键选择「Open」
  • 在弹出的配置页面中,找到「Server Locations」部分:
    • 如果当前选的是「Use workspace metadata」(默认选项),试试切换到「Use Tomcat installation (takes control of Tomcat installation)」
    • 注意:切换前要先移除所有已部署的项目(右键Tomcat→Add and Remove→把所有项目移到左侧),保存配置后再重新添加部署你的JSF项目
  • 切换后,Eclipse会直接使用Tomcat安装目录下的webapps文件夹,和你手动启动startup.bat的环境一致,这样默认页和项目访问路径就统一了

2. 验证项目的部署状态与上下文路径

有时候项目没正确部署,或者访问路径错了:

  • 右键Tomcat→「Add and Remove」,确认你的JSF项目已经在「Configured」列表中
  • 启动服务器后,看「Servers」视图里的项目状态是否显示「[Started]」
  • 检查项目的上下文路径:右键项目→「Properties」→「Web Project Settings」,查看「Context root」的值。比如如果是myjsfapp,那访问users.xhtml的正确URL应该是http://localhost:8080/myjsfapp/users.xhtml,而不是直接访问users.xhtml
  • 另外,Tomcat默认页打不开的话,切换到「Use Tomcat installation」后,Tomcat自带的ROOT项目会被部署,就能正常访问http://localhost:8080了

3. 排查端口冲突问题

Eclipse托管的Tomcat可能端口被占用,或者配置的端口和你手动启动的不一致:

  • 双击「Servers」视图里的Tomcat,找到「Ports」部分,确认HTTP/1.1的端口是8080(和你手动启动的一致)
  • 打开命令提示符,执行netstat -ano | findstr :8080,检查端口是否被其他程序占用。如果被占用,要么关掉占用程序,要么修改Tomcat的端口(在Ports配置里改)

4. 清理项目与Tomcat缓存

有时候构建缓存会导致部署文件不完整:

  • 右键你的JSF项目→「Clean」,然后选择「Clean projects selected below」,确认后执行
  • 如果是Maven项目,右键项目→「Run As」→「Maven Clean」,再执行「Maven Install」重新构建
  • 清理Tomcat缓存:右键Tomcat→「Clean」,选择「Clean all server content」,然后重新部署项目

5. 重置Eclipse的Tomcat临时目录

如果上面的方法都没用,可能是Eclipse的Tomcat插件缓存出问题了:

  • 关闭Eclipse
  • 找到你的Eclipse工作空间目录,进入.metadata\plugins\org.eclipse.wst.server.core
  • 删除里面的tmp0、tmp1等临时文件夹(建议先备份)
  • 重新打开Eclipse,重新添加Tomcat服务器,再部署你的JSF项目

按照上面的步骤排查,应该能解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:04:24