standalone.xml 是 wildfly 独立模式的核心配置文件,定义服务器全部运行时行为;修改需备份并重启或 cli 热重载,推荐优先使用管理 cli 操作,避免直接编辑;关键配置包括网络端口、数据源、安全域、部署扫描器等,添加 jdbc 驱动支持模块安装和 jar 部署两种方式。

关键原则:不要直接编辑正在运行的 `standalone.xml`;推荐优先用 ./jboss-cli.sh(Linux/macOS)或 jboss-cli.bat(Windows)操作,避免手误和格式错误。
常用配置项位置与修改方式
所有配置都包裹在 <server></server> 标签下,按功能划分为多个 <subsystem></subsystem>。常见需调整的部分包括:
-
网络接口与端口:在
<interfaces></interfaces>和<socket-binding-group></socket-binding-group>中修改。例如将 HTTP 端口从 8080 改为 9090:
→ 找到<socket-binding name="http" port="${jboss.http.port:9090}"></socket-binding>
→ 或在启动时加参数:-Djboss.http.port=9090 -
数据源(DataSource):在
<subsystem xmlns="urn:jboss:domain:datasources:5.0"></subsystem>内配置。需指定 JDBC 驱动、连接 URL、用户名密码、连接池参数。例如 PostgreSQL 数据源需先部署驱动模块或使用 JDBC JAR(WildFly 26+ 支持自动部署.jar到deployments/)。 -
安全域(Security Domain):在
<subsystem xmlns="urn:jboss:domain:security:2.0"></subsystem>中定义,用于 JAAS 认证。常配合login-module使用,如LdapLoginModule或自定义类。 -
部署扫描器(Deployment Scanner):在
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"></subsystem>中控制自动部署行为。可关闭(scan-interval="0")、修改扫描路径(path="deployments")或启用热部署(auto-deploy-zipped="true")。
添加 JDBC 驱动的两种方式
WildFly 不自带 Oracle/MySQL/PostgreSQL 驱动,需手动引入:
-
方式一:作为模块安装(推荐用于生产)
→ 创建目录:$WILDFLY_HOME/modules/system/layers/base/com/postgresql/main/
→ 放入postgresql-42.x.x.jar和module.xml(声明resource-root和dependencies)
→ 在standalone.xml的<drivers></drivers>下注册:<driver name="postgresql" module="com.postgresql"></driver> -
方式二:直接部署 JAR(开发调试快捷)
→ 将postgresql-42.x.x.jar复制到$WILDFLY_HOME/standalone/deployments/
→ WildFly 自动识别并注册为驱动(文件名需含.jar,且无.deployed或.failed标记)
通过 CLI 安全修改配置(不手动改 XML)
CLI 是最稳妥的方式,支持事务性操作和回滚提示。示例:
- 添加数据源:
/subsystem=datasources/data-source=myDS:add(jndi-name="java:/jdbc/myDS", driver-name="postgresql", connection-url="jdbc:postgresql://localhost:5432/mydb", user-name="user", password="pass") - 启用 HTTPS:
/core-service=management/security-realm=ApplicationRealm/server-identity=ssl:add(keystore-path="/path/to/keystore.jks", keystore-password="changeit")
再绑定到httpssocket binding - 重载配置(不重启):
:reload(保存后生效)或:reload(restart-required=false)(部分变更支持热重载)
验证与排错提示
启动时若报错,重点关注:
– XML 格式是否合法(标签闭合、属性引号、命名空间一致)
– 模块路径是否存在、module.xml 是否写对 resource-root
– 数据源中 connection-url 是否可达,驱动是否已加载(查 /subsystem=datasources/jdbc-driver=xxx:read-resource)
– 日志级别设为 DEBUG 可定位子系统初始化失败原因(在 <subsystem xmlns="urn:jboss:domain:logging:8.0"></subsystem> 中添加 logger)
不复杂但容易忽略的是命名空间版本号——不同 WildFly 版本对应不同 subsystem 命名空间(如 datasources:5.0 vs 7.0),复制配置时务必核对当前版本文档。










