WildFly是一个生产就绪的、跨平台的、灵活的、轻量级的、可管理的应用程序运行时间,它提供了运行Java Web应用程序的所有必要功能。它也是一个几乎完全由Java EE 8认证的应用服务器,它实现了Jakarta EE,这是Java平台的企业版(Java EE)规范。因此,你可以在任何操作系统上运行它。
WildFly的前身是JBoss AS,是一个完全实现了JEE容器的应用服务器,由JBoss开发,2006年6月5日成为Red Hat的一部分,从那时起,WildFly成为他们的产品。
如何开始使用WildFly?
这个被称为WildFly的Java中间件应用服务器是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,包括解压我们传统的下载压缩包、使用Galleon配置自定义安装,或者构建可启动的jar。官方安装指南帮助你确定哪种WildFly安装方式最适合你的应用程序的部署需求。在这篇文章中,我们将重点介绍安装下载压缩包的典型方法。
你可以从这里下载WildFly。对于大多数用户来说,标准的WildFly变体是正确的选择,但如果你想在技术上预览一下未来的内容,可以试试WildFly Preview。下载后,解压到一个文件夹,并在任何支持zip或tar格式的操作系统上安装。
$ unzip wildfly-preview-24.0.0.Final.zip
运行WildFly
WildFly有两种服务器模式--_独立_模式_和域_模式。这两种模式的区别不在于可用的功能,而在于应用服务器的管理。当你只需要服务器的一个实例时,使用_独立_模式。另一方面,当你想运行WildFly的几个实例,并且你想在一个点上控制配置时,使用_域_模式。你可以在文档中找到关于域模式的更多信息。
要使用_独立_模式下的默认配置启动 WildFly,请将目录改为$JBOSS_HOME/bin
并发出。
$ ./standalone.sh
_要在域_模式下使用默认配置启动应用服务器,请将目录改为$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 欢迎页面。
认证
虽然现在你可以看到WildFly正在运行,但你不能访问管理控制台,因为你需要添加一个用户。默认情况下,WildFly管理界面的安全性已经启用。这意味着,在你使用管理控制台或远程使用CLI进行连接之前,你需要添加一个新的用户。你可以通过使用add-user.sh
或 bin 文件夹中的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
目录。部署-扫描器子系统会检测到该归档文件并进行部署。另一个直接的方法是进入控制台的部署部分,上传你的应用程序存档。
你可以制作自己的应用程序并进行相应的部署,但在这里我使用了WildFly quickstart中的helloworld应用程序演示。
使用WildFly quickstart样本的步骤。
- 在本地做一个单独的文件夹,在里面克隆WildFly的快速启动项目。克隆资源库后,将目录改为
[helloworld](https://github.com/wildfly/quickstart/tree/master/helloworld)
(或者你也可以使用任何其他样本项目),然后构建maven项目。
$ mkdir WFLY
$ cd WFLY
$ git clone –depth 1 git@github.com:wildfly/quickstart.git
$ cd quickstart/helloworld
$ mvn clean install
- 如果你面临任何项目构建问题,那么你必须将
[boms](https://github.com/wildfly/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在市场上已经存在了近20年,它仍然是那些想开发企业级应用的开发者的热门选择。代码质量仍然保持在较高的有效水平。开发人员不断地做着许多独特而重要的工作,使WildFly达到新的高峰。最新的WildFly在SE 16和17上运行良好,今年晚些时候在标准WildFly中支持SE 17。