Introduction
WildFly (formerly JBoss AS) is a production-grade Java application server that implements the Jakarta EE specification. It provides a complete runtime for enterprise applications including CDI, JPA, JAX-RS, EJB, JMS, and more. WildFly is designed for fast startup, low memory use, and modular configuration, making it suitable for both traditional data centers and container-based deployments.
What WildFly Does
- Implements the full Jakarta EE 10 platform including web, persistence, messaging, and batch APIs
- Uses a modular class-loading system that loads only the subsystems your application needs
- Provides a CLI and web-based admin console for runtime management and configuration
- Supports domain mode for managing clusters of servers from a central controller
- Offers a Bootable JAR option to package the server and application as a single executable JAR
Architecture Overview
WildFly is built on a modular service container that organizes functionality into subsystems. Each subsystem — Undertow for HTTP, Infinispan for caching, Hibernate for JPA, ActiveMQ Artemis for messaging — loads independently. The JBoss Modules class-loading system isolates subsystem dependencies, preventing classpath conflicts. Configuration is stored in XML files (standalone.xml or domain.xml) and can be modified at runtime through the management API. Galleon provisioning lets you trim the server to include only the subsystems your application uses.
Self-Hosting & Configuration
- Download the distribution from the WildFly website or pull the
quay.io/wildfly/wildflycontainer image - Run
standalone.shfor single-server mode ordomain.shfor multi-server management - Deploy applications by placing WAR/EAR files in the
deployments/directory or using the CLI - Configure datasources, JMS queues, and security realms through
standalone.xmlor the admin console - Use Galleon to create a trimmed server distribution containing only the required feature packs
Key Features
- Modular architecture loads only what you need, reducing memory and startup time
- MicroProfile support enables cloud-native patterns like health checks, metrics, and config
- Bootable JAR packaging bundles server and app into a single deployment artifact
- Domain mode provides centralized management for server clusters
- Active community with predictable quarterly releases
Comparison with Similar Tools
- Tomcat — Servlet-only container; WildFly provides the full Jakarta EE platform
- Payara — GlassFish fork with commercial support; WildFly has a larger open-source community
- Open Liberty — IBM's Jakarta EE runtime with similar modularity; WildFly uses JBoss Modules instead of OSGi
- Quarkus — Supersonic Kubernetes-native framework; WildFly is a traditional app server that can also run in containers
- Spring Boot — Opinionated framework with embedded server; WildFly deploys standard Jakarta EE applications
FAQ
Q: Is WildFly free to use in production? A: Yes. WildFly is fully open source under the LGPL. Red Hat offers commercial support as JBoss EAP.
Q: How does WildFly compare to Quarkus? A: Quarkus is designed for fast startup and low memory in containers. WildFly provides the full Jakarta EE platform and is better suited for applications that rely on the complete spec.
Q: Can WildFly run in Docker or Kubernetes? A: Yes. Official container images are available, and the Bootable JAR option simplifies containerized deployments.
Q: Does WildFly support clustering? A: Yes. WildFly supports HA clustering with session replication via Infinispan and load balancing via mod_cluster or Undertow's reverse proxy.