如何通过JBoss CLI命令添加Wildfly RTS子系统?配置报错求解
问题分析与解决方案
问题背景
手动修改standalone.xml添加RTS子系统可正常生效:
<extensions> <extension module="org.wildfly.extension.rts"/> </extensions> <profile> <subsystem xmlns="urn:jboss:domain:rts:1.0"> <servlet server="default-server" host="default-host" socket-binding="http"/> </subsystem> </profile>
但通过JBoss CLI执行以下批处理命令时触发WFLYCTL0030错误:
/extension=org.wildfly.extension.rts/:add /subsystem=rts/:add(server=default-server, host=default-host, socket-binding=http)
报错详情:
#0 2.831 org.jboss.as.cli.CommandFormatException: Failed to get the list of the operation properties: "WFLYCTL0030: No resource definition is registered for address [("subsystem" => "rts")]": Failed to get the list of the operation properties: "WFLYCTL0030: No resource definition is registered for address [("subsystem" => "rts")]"
1. CLI报错原因
- 资源模型未刷新:添加扩展后,CLI会话不会自动加载新扩展的资源定义,直接执行子系统添加命令时,系统无法识别RTS子系统的资源结构。
- 命令格式错误:RTS子系统的
servlet是独立子资源,不能直接将参数放在/subsystem=rts/:add中,需单独配置servlet节点。
2. 正确的CLI操作步骤
方案1:批处理+模型刷新
# 第一步:添加RTS扩展 batch /extension=org.wildfly.extension.rts/:add run-batch # 刷新CLI资源模型,让系统识别新扩展 :read-resource-description(recursive=true) # 第二步:添加子系统及servlet配置 batch /subsystem=rts/:add /subsystem=rts/servlet=default:add(server=default-server, host=default-host, socket-binding=http) run-batch
方案2:分步执行(更稳妥)
- 执行扩展添加命令:
/extension=org.wildfly.extension.rts/:add
- 退出CLI并重新登录(或执行刷新命令同步资源模型):
:read-resource-description(recursive=true)
- 配置RTS子系统及servlet:
/subsystem=rts/:add /subsystem=rts/servlet=default:add(server=default-server, host=default-host, socket-binding=http)
3. 修改主机名为document_service的操作
方式1:CLI命令
# 移除原有default-host(可选,若需完全替换) /host=default-host/:remove # 创建新主机document_service /host=document_service/:add(alias=[document_service], default-web-module=ROOT.war) # 更新RTS子系统的servlet配置指向新主机 /subsystem=rts/servlet=default/:write-attribute(name=host, value=document_service)
方式2:手动修改standalone.xml
- 找到
<server name="default-server">节点下的<host>配置,替换为:
<host name="document_service" alias="document_service" default-web-module="ROOT.war"> <location name="/" handler="welcome-content"/> <http-invoker security-realm="ApplicationRealm"/> </host>
- 更新RTS子系统的
servlet节点:
<subsystem xmlns="urn:jboss:domain:rts:1.0"> <servlet server="default-server" host="document_service" socket-binding="http"/> </subsystem>
内容的提问来源于stack exchange,提问作者Frigo
相关产品推荐
相关产品推荐

