There seems to be some confusion between JBoss vs Tomcat servers. Some would argue that Tomcat is an application server. While some will counter that it’s merely nothing but a Servlet container. If you browse through online forums and social media groups – this debate over JBoss vs Tomcat is never ending.
In this post, we’re going to add our two cents to the debate to provide clarity on this JBoss vs Tomcat topic and hopefully assist readers in making educated decision about which server to choose for their project.
In the first place, let’s start with JBoss. What is JBoss? Well, JBoss is owned by Oracle and is a Certified Java Enterprise Edition (EE) container. Accordingly, this makes JBoss a full-blown Java EE application server that includes both Servlet and EJB containers; as well as other features of the Java EE stack as can be found here: http://www.oracle.com/technetwork/java/javaee/tech/index.html
Jboss vs Tomcat – What’s the Difference?
Furthermore, as mentioned before JBoss is a Servlets container and this is accomplished because it includes Tomcat internally as its Servlet container. Additionally, JBoss comes in two flavors: the Community version and the Application Server (AS) version. In other words, the Community version is free for download and use but comes with only community support. Whereas the Application Server (AS) version comes as a subscription based license which an be purchased from Oracle based on the number of cores running on the Server.
By the same token, JBoss has its pros and cons. Some of its pros includes but not limited:
- Support for Java EE as earlier stated
- Ease of server administration and configuration management
- Reduction of DevOps resource requirements and support for rapid scalability
- Ability to run both in domain and standalone modes
On the other hand, some of its cons as communicated by expert users are as follows:
- It’s a bit slow and more speed wouldn’t hurt
- Pricing for the cloud option can get pretty expensive – needs more flexibility
- Current user interface needs improvement
- Needs to support the Open Services Gateway initiative (OSGi)
In contrast, Tomcat is simply a Servlet container and a HTTP server run by the Apache community. It’s open source, free to download and use, with no subscription model like JBoss.
Tomcat has two flavors: the Web profile (which is basically a light version) is a Servlet containter. It does not support Java EE application stack such as EJB, JMS, etc. This web profile version is what Tomcat is known and popular for.
Subsequently, the Apache Community later added a certified Java EE container profile to Tomcat called TomEE which supports all Java EE technologies. For the purposes of this article, we’re focusing on Tomcat and not TomEE.
Furthermore, Tomcat is much more limited than JBoss. Although it’s very popular, many organisations extend Tomcat with other 3rd party products. Some of its pros are:
- Tomcat’s light-weight means small memory footprint and fast start ups
- Easy integration with Apache HTTP server over jk_mod
- Its compactibility allows for easy deployment to various environments such as virtual servers, cloud, docker containers, etc
- Web application deployments is a matter of point and click via Tomcat manager or SSH command line
- Support for all modern security standards and implementations
- Makes deployment management much easier and facilitate micro services
- Easy replication across multiple dispersed installations
At the same time, some of its cons are:
- It’s only a Servlet container and doesn’t support full Java EE application stack. If you require full Java EE you can use other certified Java EE application servers or extend to TomEE
- Tomcat’s support for clustering is very limited when compared to JBoss
- Administration and configuration is not intuitive
- Default logging and log rotation capabilities need more improvement
- Tomcat manager console is under utilize – maybe should be discarded. Introduction on mobile manager option will be a plus
In summary, if your project doesn’t require the full Java EE application stack or you prefer to pick and choose your own implementation of such technologies; then Tomcat is a solid option to consider. On the contrary, you can go with JBoss.