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

Spring Boot嵌入式Tomcat部署多WAR后,某应用一段时间后无法访问

可能的原因分析
  • 定时任务静默关闭上下文:第二个应用(/second)中若存在午夜执行的定时任务,任务逻辑可能在执行后意外关闭了Spring上下文或释放了核心资源(如数据库连接池),且未抛出异常,导致后续请求无法处理。主应用(/first)作为启动入口,不会被此类逻辑影响。

  • Tomcat资源泄漏自动卸载:两个应用共享内置Tomcat容器,若/second存在未释放的线程、数据库连接等资源泄漏,Tomcat的资源泄漏检测机制会在积累到一定程度(刚好午夜达到阈值)时自动卸载该Web应用。这类操作可能仅在Tomcat的localhost日志中留下记录,主应用日志不会显示相关信息。

  • 外部触发的上下文刷新失败:午夜时段可能有外部机制(如配置中心定时刷新、监控工具)触发了/second的上下文刷新,但刷新过程中因配置变更、依赖服务不可用等原因失败,导致上下文进入不可用状态。主应用作为启动入口,不会被此类刷新逻辑触发。

  • 缓存/会话失效未处理:/second依赖的缓存(如Redis、本地缓存)或会话在午夜到期,应用未实现失效后的重连、重建逻辑,导致后续请求无法获取必要资源。若日志级别设置过高(如未开启DEBUG),这类静默失败不会被记录。

  • 系统级任务影响资源访问:午夜可能存在系统定时任务(如日志切割、磁盘清理、权限更新),修改或删除了/second依赖的配置文件、临时文件或静态资源,导致应用无法读取这些资源而无法处理请求。主应用启动时已将核心资源加载到内存,不受此类文件系统变化影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:22:12