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

Eclipse内嵌Tomcat中ContextListener每次请求触发问题排查

ServletContextListener 每次请求重复触发的原因与解决
  • 原本预期:实现ServletContextListener并在web.xml中配置后,contextInitialized方法仅会在应用首次启动(首次请求时)触发一次。
  • 异常表现:在Eclipse内嵌的Tomcat环境中,该监听器的contextInitialized方法每次请求都会触发。
  • 排查过程:查看Tomcat运行日志,发现存在StandardContext reload的记录,证明应用在每次请求时都被自动重载了。
  • 根因定位:请求处理逻辑中会修改项目resource目录下的文件,Eclipse会自动监控项目内文件的变更,一旦检测到文件修改就触发应用重载,监听器会随应用重启重新执行contextInitialized方法。
  • 解决方向:
    • 调整业务逻辑,避免在运行时修改resource目录下的文件;
    • 关闭Eclipse内嵌Tomcat的自动重载功能:在Tomcat服务器配置面板中找到"Auto reloading enabled"选项并取消勾选;
    • 若需动态修改文件,将文件迁移至项目外部的独立目录,避开Eclipse的文件变更监控范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:32:10