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

如何在IntelliJ使用Tomcat时保持WAR文件持续运行?

解决IntelliJ关联Tomcat时webapps目录下独立WAR无法访问的问题

问题场景

  • Tomcat路径为/Users/myuser/Downloads/apache-tomcat-9.0.53,IntelliJ的Tomcat配置中「Tomcat Home」和「Tomcat base directory」均指向该路径
  • 两个极少变动的WAR文件(sec-web-services.war、documents-web-services.war)放入Tomcat的webapps目录后,启动IntelliJ关联的Tomcat项目时无法访问这两个WAR;停止IntelliJ的Tomcat后恢复正常
  • 当前IntelliJ的Tomcat部署列表包含这两个WAR的exploded版本,每次构建都需打包部署,耗时较长

解决方案

方案1:移除IntelliJ中两个WAR的exploded部署配置

  1. 打开IntelliJ的运行配置:点击顶部菜单栏「Run」→「Edit Configurations...」
  2. 在左侧列表选中你的Tomcat服务器配置,切换到「Deployment」标签页
  3. 找到sec-web-services:war exploded和documents-web-services:war exploded两项,选中后点击右侧的减号-删除
  4. 保存配置,重新启动Tomcat

原理:IntelliJ启动关联Tomcat时,默认只部署配置列表内的应用,会跳过Tomcat自身的webapps自动部署。移除这两个WAR的配置后,Tomcat会自动加载webapps目录下的原始WAR文件,同时IntelliJ仅处理需要频繁修改的项目,互不干扰。

方案2:将两个WAR配置为Tomcat外部独立应用

如果不想把WAR放在webapps目录,可直接在Tomcat配置中声明:

  1. 打开Tomcat安装目录下的conf/server.xml文件
  2. 在<Host>标签内添加两个<Context>节点,指定WAR路径和访问上下文:
<Context docBase="/Users/myuser/path/to/sec-web-services.war" path="/sec-web-services" reloadable="false" />
<Context docBase="/Users/myuser/path/to/documents-web-services.war" path="/documents-web-services" reloadable="false" />
  1. 重启Tomcat后,这两个应用会独立加载,不受IntelliJ部署操作影响
  2. 同时在IntelliJ的Tomcat部署配置中删除这两个WAR的exploded项

方案3:开启IntelliJ与Tomcat webapps目录的合并部署

  1. 打开IntelliJ的Tomcat服务器配置,切换到「Server」标签页
  2. 找到「Deployment options」区域,勾选「Deploy applications configured in Tomcat instance」
  3. 保存配置后重启Tomcat

注意:需确保IntelliJ部署的应用与webapps目录下的应用没有上下文路径冲突,避免访问异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:28:25