如何通过jboss-cli为WildFly 12添加主机条目?解决重复模块报错
关于WildFly jboss-cli的两个主机相关问题解答
我来帮你梳理这两个问题,顺便解决你碰到的报错:
1. 通过jboss-cli添加域模式下的主机(Host Controller)
如果你的WildFly是运行在域架构下,要添加新的主机(Host Controller),可以按以下步骤操作:
- 首先准备好目标主机的WildFly环境:
编辑目标主机的domain/configuration/host-slave.xml(或自定义host配置文件),确保配置了连接域控制器的参数,比如在<remote>节点中指定域控制器的地址和端口。 - 启动目标主机的Host Controller:
./domain.sh -c host-slave.xml - 登录到域控制器的jboss-cli,执行命令添加主机条目:
# 基础添加命令,指定主机名和管理端口 /host=my-new-host:add(management-native-interface={port=9999}) # 如果需要关联特定服务器组,可以加上server-configs参数 /host=my-new-host:add(server-configs=[server-one, server-two], management-native-interface={port=9999}) - 注意:首次添加主机前,需要在域控制器的
domain/configuration/mgmt-users.properties中添加目标主机的管理用户,确保认证通过。
2. 通过jboss-cli为WildFly 12的Undertow添加虚拟主机条目(解决你的重复ROOT.war报错)
你遇到的WFLYUT0087: Duplicate default web module 'ROOT.war'报错,原因是:默认情况下,新添加的Undertow虚拟主机会继承服务器的默认web模块(ROOT.war),而原有的default-host已经绑定了这个模块,导致冲突。
下面是正确的操作步骤和报错解决方法:
方法一:添加主机时禁用默认web模块继承
直接在添加命令中指定default-web-module=undefined,避免自动绑定ROOT.war:
/subsystem=undertow/server=default-server/host=127.0.0.10:add(alias=["127.0.0.10"], default-web-module=undefined)
添加完成后,你可以手动给这个虚拟主机部署web应用,或者后续再配置它的默认模块。
方法二:为新主机指定独立的默认web模块
如果你想让新虚拟主机使用自己的默认应用,可以先部署一个新的war包(比如my-custom-root.war),然后添加主机时指定这个模块:
# 先部署自定义默认应用 deploy /path/to/my-custom-root.war # 添加虚拟主机并指定默认模块 /subsystem=undertow/server=default-server/host=127.0.0.10:add(alias=["127.0.0.10"], default-web-module=my-custom-root.war)
补充:查看和验证虚拟主机配置
添加完成后,可以用以下命令查看配置是否生效:
/subsystem=undertow/server=default-server/host=127.0.0.10:read-resource
内容的提问来源于stack exchange,提问作者Otávio Garcia
相关产品推荐
相关产品推荐

