standalone.xml 是 JBoss/WildFly 独立模式的核心 XML 配置文件,以分层嵌套的 subsystem 模型组织服务,根元素为 ,包含 、、、 和 等关键部分。

JBoss(现为 WildFly)的 standalone.xml 是独立模式下核心配置文件,采用标准 XML 格式,以模块化方式组织各类服务与子系统。它的结构不是扁平列表,而是分层嵌套的“子系统(subsystem)”模型,每个子系统负责一类功能(如数据源、Web、安全等),由统一的 <server></server> 根元素包裹。
根结构:server 与 profiles(仅 standalone 模式下无 profile 切换)
standalone.xml 的顶层是 <server></server> 元素,包含 name 属性(如 name="default-server")和一个 <extensions></extensions> 列表(声明加载哪些模块,如 org.jboss.as.clustering.infinispan)。注意:standalone 模式不使用 <profiles></profiles>(那是 domain.xml 的概念),所有配置直接在 <profile></profile> 同级的 <management></management> 和 <system-properties></system-properties> 后紧接 <subsystems></subsystems>。
关键子系统(subsystem)及其典型位置
所有功能配置都放在 <subsystems></subsystems> 容器内,按逻辑分组。常见子系统包括:
使用 ImageMagick 的 convert 和 mogrify 命令进行批量图像处理,支持调整大小、裁剪、水印和格式转换。与 libvips 集成以实现高性能缩略图生成。
- core-management:管理接口(HTTP/HTTPS 管理端口、安全 Realm)、运行时指标采集
- undertow:Web 容器配置(servlet 容器、HTTP 监听器、host、location、filter 链)
-
datasources:通过
<datasource></datasource>或<xa-datasource></xa-datasource>定义 JDBC 连接池 -
security:定义 security-domain(如
other、jboss-web-policy),关联登录模块(LdapLoginModule、DatabaseLoginModule 等) - logging:日志层级、处理器(console、file、periodic-rotating-file)、日志格式与过滤规则
- ejb3:EJB 超时、池大小、集群行为、异步执行配置
-
infinispan:缓存容器、命名缓存(如
web、hibernate)、缓存模式(local/invalidation/replicated)
常用顶层配置段(不在 subsystem 内)
除子系统外,还有几个平行配置块,位于 <subsystems></subsystems> 上方或同级:
-
:定义管理接口地址、端口、SSL 设置、访问控制( <access-control></access-control>) -
:设置 JVM 级系统属性(如 java.net.preferIPv4Stack=true),可在配置中用${property.name}引用 -
:集中定义端口绑定(如 http=8080、https=8443、ajp=8009),各 subsystem 通过socket-binding属性引用 -
(可选):内嵌部署(不推荐用于生产,仅测试用途),实际部署建议用 CLI 或 web 控制台
配置生效与验证要点
修改 standalone.xml 后需重启服务器才生效(热部署不适用于此文件)。建议操作前备份原文件;编辑时注意 XML 格式合法(闭合标签、正确缩进);避免手动修改生成的 UUID 或自动生成的 security realm 密码哈希值。可通过 CLI 执行 /subsystem=logging:read-resource 等命令验证配置是否被正确加载。
基本上就这些。结构清晰、职责分离,改哪块功能就找对应 subsystem,配合 socket-binding-group 统一管端口,整体可读性和维护性较好。

















