Open source Java EE application servers like JBoss, Tomcat, and Apache Geronimo easily stand up to their commercial counterparts, and actually lead the market in innovation. All open source Java EE application servers are not created equal, however. In this article, Jonathan Campbell compares JBoss 4.2, Geronimo 2, and Tomcat 6 based on features, deployment, and performance.
Java Enterprise Edition (Java EE) application servers are the Web-enabled standard when it comes to application development for the enterprise. While there are commercial options, studies have shown that open source technology has become a familiar, if not essential, part of the corporate IT infrastructure. JBoss 4.2, Geronimo 2, and Tomcat 6 are three widely used open source Java EE servers. Of the three, JBoss and Tomcat hold the majority share of the market, although neither one is fully Java EE compliant. The fully Java EE compliant Geronimo, meanwhile, is quickly gaining momentum. If you want to compete in the Java EE job market, you should be familiar with all three of these open source servers and understand how they differ.
In this article I compare the three leading open source Java application servers based on features, deployment, and performance. I explain why the various features found in each app server matter, and also offer some insight into where each server might fit into your enterprise development architecture. My discussion includes commentary from Chantal Yang of Red Hat and Jeff Genender of the Apache Software Foundation.
Java enterprise features comparison
Table 1 offers a snapshot view of how JBoss 4.2, Tomcat 6, and Geronimo 2 compare in their delivery of Java EE features. Note that features marked partial are not completely supported by the server, requiring you to install additional packages. If a feature is marked available you must install a third-party package to use it.
All three servers have been tested on Linux, Solaris, Microsoft Windows, and Mac OS X. JBoss has also been tested on HP-UX and AIX, and Tomcat on AIX. You'll find more information about each of these features, and why they matter, following the table.
Table 1. Java EE feature comparison
|Feature||JBoss 4.2||Geronimo 2||Tomcat 6|
|Java EE 5 compliance||Partial||Yes||No|
|EJB 3.0 capable||Yes||Yes||Available|
|JSP 2.1 and Servlet 2.5 capable||Yes||Yes||Yes|
|JavaServer Faces 1.2 support||Yes||Yes||Available|
|Custom plug-in support||Yes||Yes||No|
|Business-rules engine support||Available||Available||Available|
|Hibernate 3.x support||Yes||Available||Available|
|JBoss Seam support||Yes||Yes||Available|
|Eclipse IDE connector support||Yes||Yes||Yes|
Geronimo 2 is the clear choice if your Java application needs are particularly extensive or if you just want to leverage total Java EE 5 compliance. Although JBoss 4.2 is not completely compatible with Sun's Java EE 5 standard, the JBoss 4.2 team is responsible for many of the cutting-edge technologies used by all of the servers and added to the standard Java EE 5 capabilities. Tomcat 6 by itself is a lightweight solution. It does not come with all the JEE features and additional packages found in JBoss and Geronimo, but also doesn't require much memory and runs fast even on smaller servers.
Now, let's look at why these features matter.