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 领域主流服务器技术选型指南》


原始标题:Change the Default Port in WildFly