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

如何通过IIS的httpPlatformHandler优雅启停TomEE并部署新WAR包?

问题与解决方案:通过IIS httpPlatformHandler管理TomEE启停及部署

环境信息

  • Windows Server 2016
  • 安装httpPlatformHandler v1.2模块的IIS 10
  • TomEE 9.1.1 MicroProfile,路径:C:\tomee\apache-tomee-9.1.1-microprofile
  • JDK 11.0.18,路径:C:\tomee\jdk-11.0.18+10
  • 主IIS ASP.Net应用访问地址:https://myserver.mydomain.tld/main/
  • 已部署的MyApp.war访问地址:https://myserver.mydomain.tld/myapp/
  • 应用别名:myapp,物理路径:C:\tomee\iis_virtual_directory

当前配置

web.config文件(位于C:\tomee\iis_virtual_directory)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="httpplatformhandler" path="myapp/*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
        </handlers>
        <httpPlatform processPath="C:\tomee\apache-tomee-9.1.1-microprofile\\bin\startup.bat" arguments="start" stdoutLogEnabled="true" stdoutLogFile="C:\tomee\iis_virtual_directory\log.txt">
            <environmentVariables>
                <environmentVariable name="JRE_HOME" value="C:\tomee\jdk-11.0.18+10" />
                <environmentVariable name="CATALINA_HOME" value="C:\tomee\apache-tomee-9.1.1-microprofile" />
                <environmentVariable name="CATALINA_OPTS" value="-Dport.http=%HTTP_PLATFORM_PORT%" />
            </environmentVariables>
        </httpPlatform>
    </system.webServer>
</configuration>

TomEE server.xml修改部分

<Server port="-1" shutdown="SHUTDOWN">
<Connector port="${port.http}" protocol="HTTP/1.1">

问题

在尽可能不重启整个IIS服务器的情况下,启停或重启TomEE服务器的最佳/最简洁方式是什么?另外,希望通过将新WAR包粘贴到webapps文件夹来部署新版本,但应用池回收似乎不起作用,必须删除应用文件夹才能完成真正的部署。

解决方案

一、TomEE启停/重启方法(无需重启IIS)

  1. 回收对应应用池

    • 打开IIS管理器,找到myapp虚拟目录关联的应用池
    • 右键选择回收,httpPlatformHandler会自动终止当前TomEE进程并重新启动新进程,这是最简便的操作方式。
  2. 手动控制TomEE进程

    • 打开任务管理器,找到TomEE对应的Java进程(可通过路径或命令行参数识别)
    • 结束该进程后,httpPlatformHandler会检测到进程退出,自动重启TomEE;若需手动启动,直接运行C:\tomee\apache-tomee-9.1.1-microprofile\bin\startup.bat即可。
  3. 修改web.config触发重启

    • 对C:\tomee\iis_virtual_directory下的web.config做微小修改(比如添加空格后保存),IIS检测到配置变更后,会重启httpPlatformHandler关联的TomEE进程。

二、WAR包自动部署问题解决

  1. 开启TomEE热部署

    • 编辑TomEE的conf/tomee.xml,添加或修改<Deployments>节点:
      <Deployments dir="webapps" deployOnStartup="true" deployNew="true" redeployOnChange="true" />
      
    • 该配置会让TomEE自动检测webapps目录下的新WAR包或已有WAR的变更,完成自动部署。
  2. 确保应用池权限与回收生效

    • 替换WAR包后执行应用池回收,TomEE重启时会重新扫描webapps目录加载新包;若仍未生效,检查IIS应用池身份对webapps目录是否有读写权限。
  3. 禁用资源缓存

    • 若存在缓存问题,在TomEE的conf/context.xml中添加以下配置,强制加载最新内容:
      <Resources cachingAllowed="false" cacheMaxSize="0" />
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:07:24