Need advice about which tool to choose?Ask the StackShare community!
GlassFish vs Wildfly: What are the differences?
Introduction
GlassFish and Wildfly are both popular Java application servers that are widely used for deploying and managing Java applications. Although they serve the same purpose, there are several key differences between the two.
Supported Java EE Versions: GlassFish is developed by Oracle and is the reference implementation for Java Enterprise Edition (Java EE). It supports the latest Java EE specifications and is known for its compatibility with Java EE standards. On the other hand, Wildfly (previously known as JBoss) is developed by Red Hat and also supports the Java EE specifications. However, Wildfly is known for its rapid innovation and early adoption of Java EE technologies.
Embedded Server Capabilities: GlassFish provides a lightweight embedded version called GlassFish Embedded Server, which allows developers to run the server inside their applications. This allows for easier development and testing of Java EE applications. In contrast, Wildfly does not provide an embedded server, but it does offer a feature called Arquillian, which enables integration testing of Java EE applications using real or virtualized containers.
Management and Administration: GlassFish comes with a web-based administration console called the GlassFish Admin Console, which provides a user-friendly interface for managing and configuring the server. It also supports remote administration using the Command Line Interface (CLI) and a RESTful API. On the other hand, Wildfly provides a powerful web-based management console called the Wildfly Management Console, which offers extensive management capabilities for configuring and monitoring the server. It also supports CLI and a management API for remote administration.
Cluster Support: GlassFish provides built-in clustering support, allowing multiple instances of the server to work together to provide high availability and load balancing. It uses the GlassFish High Availability (HA) features such as session replication and clustering for achieving fault tolerance and scalability. In contrast, Wildfly does not have built-in clustering capabilities, but it can be configured to work with other technologies like JGroups or Infinispan to achieve similar clustering benefits.
Runtime Footprint and Performance: GlassFish is known for its lightweight footprint, making it suitable for resource-constrained environments. It is optimized for fast startup times and low memory usage. Wildfly, on the other hand, has a larger runtime footprint due to its modular architecture and extensive feature set. However, Wildfly has made significant performance improvements in recent releases and offers excellent runtime performance.
Integration with other Technologies: GlassFish is bundled with several additional tools and technologies, such as the NetBeans IDE and the Eclipse GlassFish Server plugin, which provide integrated development and deployment environments. It also has seamless integration with Oracle Database and other Oracle products. In comparison, Wildfly has strong integration with Red Hat technologies, such as the Red Hat JBoss Developer Studio and OpenShift platform.
In summary, GlassFish is the official reference implementation for Java EE and provides excellent compatibility and support for Java EE standards. It has a lightweight footprint and is well-suited for resource-constrained environments. On the other hand, Wildfly is known for its rapid innovation, extensive management capabilities, and strong integration with Red Hat technologies. It offers excellent runtime performance but has a larger runtime footprint compared to GlassFish.
Pros of GlassFish
Pros of Wildfly
- Eclipse integration3
- Java3