Which of these two Java application servers should you choose?

There are many factors to consider when comparing Tomcat to JBoss, including features, tools, licenses, community support, and the various Java APIs used.

Continuation of the following JBoss vs Tomcat article: JBoss is best compatible with Java APIs

The main difference in comparing Tomcat and JBoss is that JBoss is a certified Java EE compatible application server (now Jakarta EE). JBoss not only provides support for the Servlet and Java Server Page (JSP) specification, but also for JAX-RS web services, Contexts and Dependency Injection (CDI), Java Message Service, JavaMail and Java Naming and Directory Interface.

In contrast, Tomcat is primarily a servlet class engine and web server. The main goal of Tomcat is to provide an implementation of the Servlet and JSP specification. Tomcat also supports some additional APIs such as WebSockets, Java Authentication Service Provider Interface for Containers (JASPI), and Expression Language API.

Tomcat is also not compatible with Java EE Web Profile. Many useful APIs for developers such as CDI, Java Transaction API, JavaServer Faces (JSF), Hibernate, and JPA are not supported. JBoss is already compatible with all of these APIs.

However, it is possible to add support for APIs like JSF and CDI to Tomcat by integrating projects like Weld and Mojarra. A separate Apache project called TomEE enables this support, but the basic version of Apache Tomcat does not.

Tomcat vs JBoss: the specifics of the associated licenses

There is one notable difference between the two servers: JBoss and Tomcat have different licensing models.

JBoss uses the LGPL (Lesser General Public License) provided by GNU, also known as “copyleft”. Teams using JBoss must distribute LGPL software derivatives with the same license.

Tomcat depends on an Apache license that allows users to distribute or modify the software without restriction. The Apache license is not copylefted.

While JBoss EAP is open source software and licensed under LGPL, JBoss Enterprise Middleware requires a subscription for production deployment. “If you want to use JBoss for production, you need to purchase a subscription,” said James Falkner, technical product manager at Red Hat Runtimes. “But for developers or for evaluation, you can download JBoss EAP from the Red Hat developer site,” he says.

JBoss is based on the open source Wildfly project, which also includes an LGPL. Organizations can use the uncertified Wildfly product in production without having to purchase a subscription license from Red Hat. Many modern microservice deployments use Wildfly.

Another major difference between Tomcat and JBoss is the level of support. Red Hat offers developer support for a fee with its EAP offering. The Apache Software Foundation does not offer paid support for its products. Therefore, managing issues with Tomcat instances sometimes requires third party intervention.

Tomcat and JBoss: Confusion about the web server

Red Hat happens to be one of the third party vendors a developer can turn to for production support for Tomcat. Red Hat sells a product called JBoss Web Server, which is just a distribution of Tomcat. “We’re not trying to hide the fact that it’s Tomcat under the hood,” James Falkner defended. “We provide Tomcat support with support for additional modules beyond the basic servlet container included with Tomcat.”

Unfortunately, JBoss Web Server has created some confusion in the Tomcat and JBoss EAP market. Some developers get the wrong impression that Tomcat is the web container in JBoss EAP. In fact, Wildfly and JBoss use the Undertow web server by default, but not Tomcat.

Tomcat vs. JBoss: Which Java Application Server Should I Choose?

Additional tools and functions

Since JBoss EAP is a revenue-generating product, it is not surprising that Red Hat has bundled a variety of tools into its product to simplify configuration, runtime management, and administration of the software. Server. JBoss has a modern looking management console, comprehensive command line tools, and various utilities built into DevOps tools like Ansible and Puppet.

In contrast, Apache Tomcat was designed primarily to provide a standard, bug-free implementation of the Servlet and JSP APIs. Tomcat provides a basic administrative console for managing applications, but the number of tools available is minimal compared to JBoss.

When should you choose JBoss over Tomcat?

There are two main reasons for choosing JBoss over Tomcat: the need for full Jakarta EE support on the application server and the ability to get paid support from a reputable provider.

The fact that JBoss is easier to use and integrates with popular DevOps tools are also important features that set it apart from Tomcat. Red Hat is also developing bridges to port JBoss EAP to OpenShift, the platform for Kubernetes container orchestration and cloud development. If these criteria make JBoss an attractive choice, consider evaluating WebSphere.

When should you choose Tomcat over JBoss?

Apache Tomcat is a sensible choice for developers who want a standard servlet and JSP engine with a very legal license, but are willing to pay for the services of a publisher. Once you are here, compare Tomcat and Jetty to determine which server best suits your business needs.

There are significant differences between Red Hat’s JBoss EAP server, which is Java EE compliant, and the standard servlet engine provided by the Apache Software Foundation. The Java community is rich with these differences and the various options developers can choose from for their business.