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

Tomcat 8.5/9修改web应用软链接后context无法自动重载解决方案咨询

问题根因

Tomcat 8.5.x及后续的9.x、10.x版本默认新增了linkResolveOnce配置项,默认值为true,作用是Context首次启动时一次性解析软链接对应的真实路径并缓存,后续Context重载时不会重新解析软链接,只会读取缓存的旧路径,因此修改软链接删除旧目录后,重载时就会抛出旧路径无效的报错。

修复配置

你可以通过修改Context配置恢复8.0.x版本的自动重新解析软链接逻辑,两种配置方式二选一即可:

方式1:全局配置(对所有Web应用生效)

编辑Tomcat安装目录下的conf/context.xml,调整节点,新增子节点如下:

<Context>
  <!-- 原有其他配置保持不变 -->
  <Resources allowLinking="true" linkResolveOnce="false" />
</Context>

方式2:单应用配置(仅对指定应用生效)

编辑对应应用的Context配置文件(通常为conf/Catalina/localhost/app1.xml,不存在可手动新建),内容如下:

<Context docBase="/usr/local/tomcat/webapps/app1">
  <Resources allowLinking="true" linkResolveOnce="false" />
</Context>

注意事项

  • 修改配置后需要重启一次Tomcat使配置生效,后续再更新软链接就会自动触发Context重载,自动读取新的软链接指向路径,无需再次重启Tomcat。
  • 关闭linkResolveOnce仅会略微增加Context重载时的路径解析开销,常规业务场景下几乎无性能感知,生产环境可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:06:03