1. 概述
本文将介绍如何修改 WildFly 的默认服务端口——通常情况下,这个端口是 8080
。
✅ WildFly 是由 JBoss 社区维护的一款主流开源应用服务器,在 Java EE / Jakarta EE 项目中广泛使用。在实际开发或部署中,经常会遇到端口冲突(比如被 Tomcat 或其他服务占用),因此修改默认 HTTP 接口的监听端口是一个常见需求。
下面介绍几种简单粗暴又实用的修改方式,适合不同场景下的配置调整。
2. 通过配置 XML 文件修改端口
在 standalone(独立)模式下,WildFly 的网络配置由 standalone.xml
文件控制。该文件位于安装目录下的:
{WILDFLY_HOME}/standalone/configuration/standalone.xml
打开该文件,找到如下这一行:
<socket-binding name="http" port="${jboss.http.port:8080}"/>
将其中的 8080
替换为你想要的端口号即可,例如改为 9090
:
<socket-binding name="http" port="${jboss.http.port:9090}"/>
⚠️ 注意:${jboss.http.port:9090}
是一个带默认值的系统属性占位符。如果启动时未指定 jboss.http.port
,则使用 9090
;否则以启动参数为准。
2.1 使用端口偏移量(Port Offset)
另一种更灵活的方式是设置 端口偏移量(port-offset)。在 standalone.xml
中找到:
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
默认偏移为 0
,即所有服务端口保持原值:
- HTTP:8080
- HTTPS:8443
- AJP:8009
若将偏移设为 10
:
port-offset="${jboss.socket.binding.port-offset:10}"
则所有绑定端口自动加 10:
✅ HTTP → 8090
✅ HTTPS → 8453
✅ AJP → 8019
⚠️ 踩坑提醒:使用 port-offset 会影响所有socket binding,适用于需要整体迁移端口的场景(如多实例部署避免冲突),但如果只想改 HTTP 接口,建议直接修改 http
的 port 属性。
3. 启动时通过系统属性指定端口
最方便的方式是在启动 WildFly 时,通过 JVM 系统属性动态指定 HTTP 端口,无需修改任何配置文件。
3.1 Windows 系统
运行以下命令:
standalone.bat -Djboss.http.port=9090
3.2 Unix/Linux 系统
./standalone.sh -Djboss.http.port=9090
✅ 这种方式非常适合:
- 开发环境快速切换端口
- 容器化部署(Docker/K8s)中通过环境变量注入
- CI/CD 流水线中动态控制端口
❌ 缺点是每次都要加参数,不适合长期固定配置。
4. 总结
修改 WildFly 默认端口有三种常用方式,各有适用场景:
方式 | 优点 | 缺点 | 推荐场景 |
---|---|---|---|
✅ 修改 standalone.xml |
一劳永逸,永久生效 | 修改配置文件,需重启 | 生产环境固定配置 |
✅ 使用 port-offset |
批量调整端口,避免冲突 | 影响所有服务端口 | 多实例并行部署 |
✅ 启动时传 -Djboss.http.port |
灵活、无需改文件 | 每次启动都要指定 | 开发/测试/容器环境 |
📌 建议:开发阶段用系统属性最方便;生产环境建议通过 XML 配置固化设置。
想了解更多 Java 应用服务器的对比与选型?可以参考我们之前的专题文章:《Java 领域主流服务器技术选型指南》