什么是 wildfly
JBoss AS 从 8 版本起名为 wildfly。Wildfly 是一个开源的基于 JavaEE 的轻量级应用服务器。可以在任何商业应用中免费使用。
WildFly 是一个灵活的、轻量的、强大管理能力的应用程序服务器。Wildfly 是一个管理 EJB 的容器和服务器,但 JBoss 核心服务不包括支持 servlet/JSP 的 WEB 容器,一般与 Tomcat 或 Jetty 绑定使用。
特点
- 无与伦比的速度:快速启动,无限的网络性能和可扩展性。
- 非常的轻量级:瘦内存管理,运行时间可定制化。
- 强大的管理功能:统一的配置和管理。
Wildfly 更多特点及与市面上常见的 Web 服务对比,可参看《热门 WEB 容器 TOMCAT、JETTY、GLASSFISH、WILDFLY 对比》。
下载安装
wildfly 下载地址:https://wildfly.org/downloads/
目前,最新版本是 18.0.0.Final,选择“Java EE Full & Web Distribution”项对应的 ZIP 版本,点击下载即可。如果官网下载较慢,可关注微信公众号“程序新视界”,回复“wildfly”获得下载链接。
安装 java 环境要求 Java8 或更高版本。
所谓的安装即解压即可。下面看一下该版本的目录结构:
├── LICENSE.txt
├── README.txt
├── appclient
├── bin
├── copyright.txt
├── docs
├── domain
├── jboss-modules.jar
├── modules
├── standalone
└── welcome-content
standalone 目录下存放的应用将单独占用进程,可单独启动和关闭,之间没有关联性。旗下有许多 xml 文件可供启动时选择。
domain 目录下的应用之间有关联性,managing multiple servers from a single control point。
modules 目录,jboss 采用 module 加载驱动。
readme 及启动命令
重点看一下 readme 中的内容,提供了启动相关的指导。
关键特性:
Key Features
------------
* Jakarta EE 8 support
* Fast Startup
* Small Footprint
* Modular Design
* Unified Configuration and Management
* Distributed Domain Management
文档获取,同时也可以看出启动时默认是监听 8080 端口。
Also, once WildFly is started you can go to http://localhost:8080/
for additional information.
启动命令:
Starting a Standalone Server
----------------------------
A WildFly standalone server runs a single instance.
<JBOSS_HOME>/bin/standalone.sh (Unix / Linux)
<JBOSS_HOME>\bin\standalone.bat (Windows)
启动脚本位于根目录 /bin 目录中。Windows 为 standalone.bat,Linux 为 standalone.sh。
Wildfly 还可以启动一个管理后台来对服务进行管理。
Starting a Managed Domain
-------------------------
A WildFly managed domain allows you to control and configure multiple instances,
potentially across several physical (or virtual) machines. The default
configuration includes a domain controller and a single server group with three
servers (two of which start automatically), all running on the localhost.
<JBOSS_HOME>/bin/domain.sh (Unix / Linux)
<JBOSS_HOME>\bin\domain.bat (Windows)
启动脚本位于根目录 /bin 目录中。Windows 为 domain.bat,Linux 为 domain.sh。
停止服务,可以通过控制台输入 Ctrl+ c 命令来操作。如果服务在后台运行,可执行一下命令进行停止。
<JBOSS_HOME>/bin/jboss-cli.sh --connect --command=:shutdown (Unix / Linux)
<JBOSS_HOME>\bin\jboss-cli.bat --connect --command=:shutdown (Windows)
启动操作
现在启动项目 standalone 看一下效果。
19:48:11,234 INFO [org.jboss.as.ejb3] (MSC service thread 1-6) WFLYEJB0482: Strict pool mdb-strict-max-pool is using a max instance size of 32 (per class), which is derived from the number of CPUs on this host.
19:48:11,234 INFO [org.jboss.as.ejb3] (MSC service thread 1-2) WFLYEJB0481: Strict pool slsb-strict-max-pool is using a max instance size of 128 (per class), which is derived from thread worker pool sizing.
19:48:11,296 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) WFLYUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
19:48:11,409 INFO [org.jboss.as.ejb3] (MSC service thread 1-6) WFLYEJB0493: EJB subsystem suspension complete
19:48:11,479 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]
19:48:11,579 INFO [org.jboss.as.patching] (MSC service thread 1-3) WFLYPAT0050: WildFly Full cumulative patch ID is: base, one-off patches include: none
19:48:11,596 WARN [org.jboss.as.domain.management.security] (MSC service thread 1-5) WFLYDM0111: Keystore /Users/zzs/tools/wildfly18/standalone/configuration/application.keystore not found, it will be auto generated on first use with a self signed certificate for host localhost
19:48:11,606 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-6) WFLYDS0013: Started FileSystemDeploymentService for directory /Users/zzs/tools/wildfly18/standalone/deployments
19:48:11,746 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0006: Undertow HTTPS listener https listening on 127.0.0.1:8443
19:48:11,846 INFO [org.jboss.ws.common.management] (MSC service thread 1-2) JBWS022052: Starting JBossWS 5.3.0.Final (Apache CXF 3.3.3)
19:48:11,963 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0212: Resuming server
19:48:11,965 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
19:48:11,965 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
19:48:11,965 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 18.0.0.Final (WildFly Core 10.0.0.Final) started in 3880ms - Started 315 of 577 services (369 services are lazy, passive or on-demand)
通过以上部分日志可以看到,wildfly 监听了 8080,8443 和 9990 端口。
访问服务器的 url 为:127.0.0.1:8080,访问管理后台的 url 为:http://127.0.0.1:9990/。
访问服务器可看到如下页面:
页面内包含文档、快速启动、管理后台等链接。
此时访问后台管理会提示如下内容:
Welcome to WildFly
Your WildFly Application Server is running.
However you have not yet added any users to be able to access the admin console.
To add a new user execute the add-user.sh script within the bin folder of your WildFly installation and enter the requested information.
By default the realm name used by WildFly is "ManagementRealm" this is already selected by default.
After you have added the user follow this link to Try Again.
也就是说启动成功了,但没有配置用户。同 tomcat 一样,wildfly 也有自己的服务管理页面,可以统一管理应用,设置权限用户。执行 add-user 脚本来添加管理者用户。
bin zzs$ ./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): a
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
# 输入用户名
Username : zzs
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password should be different from the username
- The password should not be one of the following restricted values {root, admin, administrator}
- The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
# 输入用户密码
Password :
# 重新输入密码
Re-enter Password :
# 留空即可或输入 ManagementRealm
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]: ManagementRealm
About to add user 'zzs' for realm 'ManagementRealm'
# 继续则输入 yes
Is this correct yes/no? yes
Added user 'zzs' to file '/Users/zzs/tools/wildfly18/standalone/configuration/mgmt-users.properties'
Added user 'zzs' to file '/Users/zzs/tools/wildfly18/domain/configuration/mgmt-users.properties'
Added user 'zzs' with groups ManagementRealm to file '/Users/zzs/tools/wildfly18/standalone/configuration/mgmt-groups.properties'
Added user 'zzs' with groups ManagementRealm to file '/Users/zzs/tools/wildfly18/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one 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 EJB calls.
# 继续则输入 yes
yes/no? yes
这里需要注意,用户添加完毕后,将回馈给你此用户的 secret value,可在 domain 与 slave 的通信中用到
To represent the user add the following to the server-identities definition <secret value="MTk4NzEwMjlfUXE=" />
每一步操作都会有对应的提示与选项,按照提示填写即可。
设置完成,再进点击 Administration Console 或访问 http://127.0.0.1:9990/,输入刚刚设置的用户名密码,即可登录管理后台。
原文链接:《wildfly(JBoss AS)应用服务器快速入门》
参考文章:《热门 WEB 容器 TOMCAT、JETTY、GLASSFISH、WILDFLY 对比》
<center> 程序新视界 :精彩和成长都不容错过 </center>