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

Tomcat 9无法运行JSP文件:无法设置文件最后修改日期问题求助

这个问题的根因是JSP编译器Jasper在将JSP文件编译为Java源码后,无法更新生成的.java文件的最后修改时间戳,导致编译流程中断,没有生成对应的字节码class文件,后续刷新页面时就会抛出类不存在的错误。可按以下步骤依次排查解决:

  • 修复工作区缓存目录权限
    关闭Eclipse和所有运行中的Tomcat进程,执行以下命令递归修改工作区元数据目录的所有者为当前登录用户:

    sudo chown -R $USER:$USER /data/Documents/S3/JEE/.metadata
    

    该场景大多是因为之前使用sudo权限启动过Eclipse/Tomcat,导致缓存目录的所有者为root,普通用户运行的Tomcat进程即使有文件写入权限,也没有修改文件元数据(修改时间戳)的权限。

  • 清理服务器缓存并重新发布
    启动Eclipse后打开「Servers」视图:

    1. 右键选中对应的Tomcat服务器,点击Clean清理已发布的项目资源
    2. 再次右键点击Tomcat服务器,选择Clean Tomcat Work Directory清理JSP编译缓存目录
    3. 移除当前发布的TP4项目,重新添加后启动服务器测试
  • 检查项目配置兼容性
    如果上述操作无效,检查项目的Facet配置:
    右键项目 → Properties → Project Facets,确认两项配置:

    • Dynamic Web Module版本不高于4.0(Tomcat 9最高支持Servlet 4.0规范,更高版本会导致JSP编译失败)
    • Java版本和你使用的Java 11保持一致
  • 重建Tomcat运行配置
    如果问题仍存在,完全重置Eclipse中的Tomcat配置:

    1. 在Servers视图删除现有的Tomcat服务器
    2. 关闭Eclipse,删除路径/data/Documents/S3/JEE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0整个临时目录
    3. 重启Eclipse后重新添加Tomcat 9服务器,发布项目后测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:45:04