In this tutorial we will approach WildFly basics and learn what is WildFly and how it can help you to develop Enterprise Applications.
An application server by definition exposes business logic to client applications through various protocols, possibly including HTTP. While a Web server mainly deals with sending HTML for display in a Web browser, an application server is not limited to that as it also provides access to business logic for use by client application programs.
WildFly is a Java EE 8 certified application server. Since the version 17.0.1, WildFly is also a Jakarta EE Full platform compatible implementation.
The latest version of WildFly is 24
WildFly simplifies the development of Enterprise applications by providing a list of services out of the box:
- A JDBC Connection pool to manage access to Relational database: The connection pool can be used either directly by injecting a Datasource object in your application or indirectly using for example a JPA application which relies on an available Datasource
- A Messaging broker compatible with the JMS specifications named “Artemis Active MQ“: The embedded messaging broker is available in the “full” and “full-ha” profiles and can be used to produce and consume JMS messages.
- A Resource Adapter compliant architecture so that you can connect to external systems (e.g. Tibco, Weblogic Server, Active MQ, etc). Out of the box, WildFly provides a Resource Adapter for Artemis ActiveMQ which can be used to connect to local or remote Artemis servers.
- An EJB container where you can deploy remote services: EJBs are a server-side software element that summarizes business logic of an application. The EJB container can host a variety of Enterprise Java Beans such as Stateless Beans, Stateful Beans, Message Driven Beans.
- A lightweight and performant Web Server named “Undertow“. This Web server provides support for legacy Web applications (JSP / Servlets) as well for JSF and RESTful interfaces.
- A Batch Job scheduler to execute Tasks and Jobs
- MicroProfile compatibility with the version 3.3 of Eclipse MicroProfile Specifications.
The following picture shows the core components of WildFly architecture:
Although the application server is a monolithic piece of software which provides several services, you can easily provision a version of WildFly tailored for your needs. The tool which is used to provision WildFly layers is called Galleon and you can read an introduction to it here: Provisioning WildFly with Galleon
WildFly runtime modes
WildFly can be booted into two different modes depending on the number of server instances to be managed:
• managed domain – allows to run and manage a multi-server topology. It is suitable when multiple instances of the server needed. In such case it provides a common administration for all instances.
• standalone server – is appropriate when managing only a single server instance.
Here are some common questions if you are pretty new to WildFly.
Is WildFly free for commercial usage?
WildFly is free and open-source software, subject to the requirements of the GNU Lesser General Public License (LGPL), version 2.1. Being an opensource project it means you can contribute as well to make it better. You can use WildFly both for commercial usage and for non-commercial usage, it’s absolutely free.
Where can I get support for WildFly?
In terms of support, WildFly is a Community product thefore you rely on its vast Community of users for help. Check the Home page forum to get help on it.
If you want to have commercial support for this product, then you have to use JBoss Enteprise Application Server platform which is a Red Hat Product. Check this out: What is the difference between JBoss EAP, WildFly and JBoss AS ?
Where can I download WildFly?
You can download WildFly at: http://wildfly.org/downloads/
If you are in a hurry, you can just download the latest version with:
curl https://download.jboss.org/wildfly/24.0.0.Final/wildfly-24.0.0.Final.zip --output wildfly-24.0.0.Final.zip
Continue learning about WildFly folder structure here: Getting to know WildFly folder structure