WildFly 是一个生产就绪、跨平台、灵活、轻量级、托管的应用程序运行时,它提供了运行 Java Web 应用程序所需的所有必要功能。它也是一个 Java EE 8 认证的应用程序服务器,几乎完全用 Java 编写,并且它实现了 Jakarta EE,也就是之前的 Java 平台企业版 (Java EE) 规范。因此,您可以在任何操作系统上运行它。
WildFly,以前称为 JBoss AS,是由 JBoss 开发的完全实现的 JEE 容器—应用服务器,JBoss 于 2006 年 6 月 5 日成为 Red Hat 的一部分,此后,WildFly 成为了他们的产品。
如何开始使用 WildFly?
这款 Java 中间件应用服务器,称为 WildFly ,是 Jakarta 平台规范的强大实现。最新的 WildFly 24 架构构建在模块化服务容器之上,当您的应用程序需要时,它可以按需启用服务。
先决条件
在安装 WildFly 之前,有一些先决条件
- 检查您的机器上是否安装了 JDK—建议使用 JDK 8 或更高版本来启动 WildFly。您可以使用名为 OpenJDK 的开源 JDK。
安装 JDK 后,设置 JAVA_HOME 环境变量。 - 确保您已安装 Maven 3.6.0 或更高版本。您可以从 此处 下载 Maven 并设置环境变量。
- 加载这两个变量后,检查 JDK 和 Maven 的版本。
$ java -version
openjdk version “11.0.9” 2020-10-20 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /usr/share/maven
Java version: 11.0.9, vendor: AdoptOpenJDK, runtime: /usr/lib64/adoptopenjdk
Default locale: en_US, platform encoding: UTF-8
OS name: “linux”, version: “5.9.1”, arch: “amd64”, family: “unix”
下载并安装 WildFly
您可以通过多种方式安装 WildFly,包括解压缩我们的传统下载 zip 文件,使用 Galleon 预置自定义安装,或构建可启动的 jar 包。官方安装指南可以帮助您确定最适合您的应用程序部署需求的 WildFly 安装类型。在本文中,我们将重点介绍安装下载 zip 文件的典型方法。
您可以从 此处 下载 WildFly。标准的 WildFly 变体是大多数用户的正确选择,但如果您想预览一下未来的技术,请尝试 WildFly Preview。下载后,将压缩包解压到一个文件夹中,并将其安装在任何支持 zip 或 tar 格式的操作系统上。
$ unzip wildfly-preview-24.0.0.Final.zip
运行 WildFly
WildFly 有两种服务器模式—standalone(独立)和 domain(域)。两种模式之间的区别不在于可用功能,而在于应用程序服务器的管理方式。当您只需要服务器的一个实例时,请使用 standalone 模式。另一方面,当您想要运行多个 WildFly 实例,并且想要从一个单一的点控制配置时,请使用 domain 模式。您可以在 文档中找到更多关于域模式的信息。
要使用 standalone 模式下的默认配置启动 WildFly,请将目录更改为 $JBOSS_HOME/bin
并发出
$ ./standalone.sh
要使用 domain 模式下的默认配置启动应用程序服务器,请将目录更改为 $JBOSS_HOME/bin
并发出
$ ./domain.sh
启动独立模式后,您应该在启动过程结束时在控制台中找到如下内容
00:46:04,500 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Preview 24.0.0.Final (WildFly Core 16.0.0.Final) started in 4080ms - Started 437 of 638 services (350 services are lazy, passive or on-demand)
00:46:04,502 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
00:46:04,502 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
您可以将浏览器指向 http://localhost:9990
(如果使用默认配置的 HTTP 端口),这将带您进入 WildFly 欢迎页面。

(Ranabir Chakraborty, CC-BY SA 4.0)
身份验证
虽然现在您可以看到 WildFly 正在运行,但您无法访问管理控制台,因为您需要为此添加用户。默认情况下,WildFly 管理接口启用了安全性。这意味着在您使用管理控制台连接或远程使用 CLI 连接之前,您需要添加一个新用户。您可以使用 bin 文件夹中的 add-user.sh
或 add-user.bat
脚本来轻松实现这一点。
启动脚本后,系统会引导您完成添加新用户的过程。
$ ./add-user.sh
What type of user do you wish to add?
a) Management User (mgmt.users.properties)
b) Application User (application-users.properties)
(a):
选择默认选项 "a" 以添加管理用户,其中用户将被添加到 ManagementRealm。因此,用户被授权使用基于 Web 的管理控制台或 CLI 执行管理操作。另一个选项是 "b",其中用户被添加到 ApplicationRealm。此领域用于应用程序。
Enter the details of the new user to add.
Using realm ‘ManagementRealm’ as discovered from the existing property files.
Username : Ranabir
Password recommendations are listed below. To modify these restrictions, edit the add-user.properties configuration file.
[…]
Passward :
Re-enter Password :
在这里,您选择管理用户选项并提供所需的用户名和密码。
What groups do you want this user to belong to?
(Please enter a comma-separated list, or leave blank for none) [ ]:
用户可以与您选择的任意组关联,系统会提示您考虑将新用户分配给一个组。组对于简化访问权限等管理很有用,但为了入门,留空是可以的。然后您确认添加用户。用户被写入用于身份验证的属性文件,并显示确认消息。
Is this new user going to be used for AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server Jakarta Enterprise Beans calls.
yes/no? no
最后,系统会询问您是否将使用您添加的帐户来标识一个 WildFly 进程到另一个进程—通常在 WildFly 管理域中。这里的答案应该是 "否",因为您在此处添加的帐户供人工管理员使用。
成功添加用户后,现在您可以刷新浏览器,控制台将如下所示

部署应用程序
WildFly 提供了多种在服务器上部署应用程序的方式。但是,如果您正在运行独立的 WildFly 服务,则部署应用程序的一种简单方法是将您的应用程序归档文件 (war/ear/jar
) 复制到服务器安装中的 $JBOSS_HOME/standalone/deployments
目录中。deployment-scanner
子系统会检测到归档文件并部署它。执行相同操作的另一种直接方法是转到控制台的部署部分并上传您的应用程序归档文件。

您可以制作自己的应用程序并相应地部署它,但在这里我使用了来自 WildFly quickstart 的演示 helloworld 应用程序。
使用 WildFly quickstart 示例的步骤
- 在本地创建一个单独的文件夹,并在其中克隆 WildFly quickstart 项目。克隆存储库后,将目录更改为
helloworld
(或者您可以尝试任何其他示例项目)并构建 maven 项目。
$ mkdir WFLY
$ cd WFLY
$ git clone –depth 1 git@github.com:wildfly/quickstart.git
$ cd quickstart/helloworld
$ mvn clean install
- 如果您遇到任何项目构建问题,那么您必须将
boms
存储库克隆到当前工作目录(在我的示例中为 WFLY)并构建它。之后,构建示例项目。仅当构建 WildFly 服务器的开发版本时才需要此步骤。当运行 标记 或 发布 版本的 WildFly 服务器时,不需要此步骤。
$ git clone git@github.com:wildfly/boms.git
$ cd boms
$ mvn clean install
- 成功构建示例项目后,从目标文件夹中获取应用程序归档文件
helloworld.war
,并将其复制到服务器安装中的$JBOSS_HOME/standalone/deployments
目录中。
$ cd quickstart/helloworld/target/
$ cp helloworld.war …/…/…/wildfly-preview-24.0.0.Final/standalone/deployments/
-
现在将浏览器指向
http://localhost:8080/helloworld/
以查看您成功部署的 WildFly 应用程序。
结论
尽管 WildFly 已上市近二十年,但它仍然是希望开发企业级应用程序的开发人员的热门选择。代码质量仍然保持在较高且高效的水平。开发人员一直在进行许多独特而重要的工作,这些工作正在将 WildFly 推向新的高峰。最新的 WildFly 在 SE 16 和 17 上运行良好,并将在今年晚些时候在标准 WildFly 中支持 SE 17。
2 条评论