如何禁用JBoss 7.2重启时的.war文件自动重部署?
JBoss 7.2 EAP重启时重复部署WAR文件的解决办法
针对你修改standalone.xml部署扫描子系统配置后仍出现重复部署的问题,可以尝试以下几种解决方式:
1. 修正部署目录的标记文件状态
JBoss的部署扫描器通过deployments目录下的标记文件判断应用部署状态:
- 进入
JBOSS_HOME\standalone\deployments目录,找到你的WAR包对应的标记文件(比如your-app.war.dodeploy) - 将其重命名为
your-app.war.deployed(如果是解压后的WAR包,对应标记文件为your-app.war.isdeployed) - 这样JBoss会认定该应用已完成部署,重启时不会触发重复部署
2. 关闭部署扫描器的监控功能
你当前的Scan Enabled设为true,即使关闭了自动部署压缩/解压包,扫描器仍会持续监控目录变化。直接将该参数改为false即可彻底避免重启时的自动部署:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-enabled="false" auto-deploy-zipped="false" auto-deploy-exploded="false"/> </subsystem>
注意:关闭扫描后,后续需要手动部署时,可通过JBoss CLI命令或添加.dodeploy标记文件触发。
3. 分离WAR包与配置文件(根治配置被覆盖问题)
把应用的配置文件移出WAR包,放到独立的目录(比如JBOSS_HOME\standalone\configuration\your-app-config),再通过以下方式让应用加载外部配置:
- 在
standalone.xml的urn:jboss:domain:ee:4.0子系统中添加全局模块引用,指向配置目录 - 在应用的
WEB-INF/jboss-deployment-structure.xml中声明对外部配置模块的依赖
这样即使WAR包被重新部署,配置文件也不会被覆盖。
4. 排查是否存在多部署扫描器节点
检查standalone.xml中是否定义了多个<deployment-scanner>节点,可能某个额外的扫描器仍在监控目录并触发部署。确保所有扫描器都配置了auto-deploy-zipped="false"、auto-deploy-exploded="false"参数。
内容的提问来源于stack exchange,提问作者alexkidd
相关产品推荐
相关产品推荐

