Top 6 Open Source Java EE Application Servers
This is a very basic review of active and available open source Java EE Application servers and Servlet container (Web containers) to let the community know which active containers are available and what is the general status of each container. The article can simply act as a start point for anyone need to select one of them for later use in development or product. Detailed comparison of these production cover many pages of a tick book.
Full blown Open Source Java EE Application Servers:
Resin, a well known product from Caucho is an open source Java EE application server which has been around for quite a long time and many small and large deployment of it are serving small and large systems like DZone itself.
Current stable version of Resin is 3.1.9 which fully support Java EE 5 and the development version which will replace the current one is 4.0.1. Resin licensing schema is a bit different with other alternatives. They provide a
GPL-ed version for open source distributer and evaluators while commercial usage requires paying Caucho some per/CPU - per/year fees. Different editions of Resin is available with a different set of features and capabilities and each edition has its own pricing schema. You can find more about the different versions and licensing fees at: Licensing
Resin come with Clustering, high availability support and benefits from an integrated caching system. Similar to GlassFish Resin support hosting PHP applications using Quercus.
For the administration and management, Resin took an alternate path by providing a light weight monitoring application to let administrators and developers see status of different services in the application server and left the the administrators to perform administrative and configuration tasks trough configuration files.
When it come to development tools support you can expect NetBeans, Eclipse and IntelliJ integration along with integration with Ant, Maven, and Ivy.
- Download link: http://www.caucho.com/download/ You can get version 4.0.1
- How to start: goto install_dir/bin and issue /resin.sh start or resin.exe start dependin on your OS
- Monitoring Console: details: URL: http://127.0.0.1:8080/resin-admin/ You will need to create a user and password to proceed further. Follow the on-screen steps to create the user and password.
Geronimo: The Apache Java EE
application server which is obviously distributed under ASF. Geronimo
lacks behind GlassFish when it come to implementing new Java EE
specification but it benefits from a good
administration console
compared to JBoss. Clustering is available trough 3rd party products
like Terracotta and there is no out of the box support for clustering
and high availability. Geronimo is well integrated with other apache
projects like ServiceMix and ActiveMA. Current version of Geronimo is
v2.1.4 and fully support Java EE 5 specification. Commercial support
for Geronimo is available through IBM WebSphere Application Server
Community Edition.
Two separate distribution of Geronimo is available, one with Jetty as web container and the other one with Tomcat as the web container. All Major IDEs support Geronimo as a development server.
- Download link: http://geronimo.apache.org/apache-geronimo-v214-release.html
- How to start: goto install_dir/bin and issue ./geronimo.sh start or geronimo.bat start depending on the OS
- administration console details: URL: http://localhost:8080/console/ credentials: system/manager
GlassFish: Mainly developed by sun
Microsystems and benefits from a modular, and extend-able
architecture. GlassFish is in the front line of providing the
community with new Java EE specification implementation and in the
same time it provides all users with features like: advanced
administration channels, out of the box
clustering and high
availability, OSGI runtime deployment and so on. Using Glassfish
means that users can easily sign a contract and get support from Sun
without need to change the deployment bits. current GlassFish stable
version is GlassFish 2.1.1 and the next major version is GlassFish v3
which is a fully Java EE 6 compliant and OSGI based application
server. The new version is due to be released on November this year.
Open source GlassFish is accessible under CDDL and GPL licenses.
GlassFish benefits from integration with a wide set of Sun products starting from operating system (Solaris) up to the IDE (NetBeans). GlassFish ESB, Open Portal, OpenSSO and OpenMQ are some of the notable projects that GlassFish is well integrated with.
Another strength in GlassFish is integration with Sun HADB which can form a proven highly available infrastructure without spending any penny for the required software and licenses.
All Major IDEs support GlassFish as a development server and it means an easy start for developing Java EE applications using GlassFish.
- Downlod link:
https://glassfish.dev.java.net/downloads/v2.1.1-final.html
- How to start: goto intall_dir/bin and issue asadmin start-domain
- Administration console details: URL: http://localhost:4848 Default credentials: admin/adminadmin
JBoss: It was present in the open
source community longer than other projects and benefits from Red hat
support. JBoss Application server provides Clustering and high
availability out of the box but the administration console which
included in the distribution from version 5.1 is not advanced enough
to let administrators manage the all application server resources .
The included administration and management console is an embedded
version of Jopr (http://www.jboss.org/jopr). This console will acts
as a single point of administration and management for all JBoss
technologies like ESB, cache et. Current version of JBoss is 5.1.0.GA
and next upcoming version is 5.2. JBoss is distributed under LGPL and
anyone interested can get commercial support from Red Hat. JBoss
community distribution and enterprise distribution are two different
package and and moving from community support to commercial support
means installing an alternate version of Jboss named JBoss Enterprise
Middleware.
JBoss application server benefits from integration with a wide range of middleware provided by JBoss. This products include caching, BPM, ESB, portal and so on. On the development side, it benefits from JBoss Developer Studio (not available for free) which is based on Eclipse and provide tooling for wide range of middlewares provided by Jboss.
All Major IDEs support JBoss as a development server and it means an easy start for developing applications on top of this application server
- Download link: http://www.jboss.org/jbossas/downloads/
- How to start: goto install_dir/bin and issue ./run.sh or ./run.bat depending on the OS
- administration console details: URL: http://localhost:8080/admin-console/ default credentials: admin/admin
designing, deploying and
administrating a clustered environment.
Current version of Jonas is 5.1 which fully support Java EE 5, the next planned version is 5.2 which is due to be released in Feb 2010 with basic support of Java EE and self management. Major IDEs like Eclipse and NetBeans support JOnAS as a development server. Jonas is distributed under LGPL
- Download link: http://wiki.jonas.ow2.org/xwiki/bin/view/Main/Downloads
- How to start: goto install_dir/bin and issue ./jonas start or jonas.bat start depending on the OS
- administration console details: URL: http://localhost:9000/jonasAdmin/ Credentials: admin/admin
Servlet Containers:
Jetty: Jetty is considered an alternative to Tomcat to some level. Because of the differences between these containers architecture each of them has its user base. Jetty is considered lighter, easier to embed and highly modular while Tomcat is considered more feature rich. Both projects benefit from a good performance under
heavy load but it certainly can change from version to version and between different use cases. A cluster of jetty instances can be configured using any of Gigaspaces, WADI, Terracotta, etc. Jetty does not have a management console and everything should go through the configuration files by adding required changes to the configuration files. A good comparison between Tomcat and Jetty can be found at: http://www.webtide.com/choose/jetty.jsp
- Download link: http://www.eclipse.org/jetty/downloads.php
- How to start: goto install_dir/bin and issue ./jetty.sh start or jetty.bat start depending on the OS
- Administration console details: No administration console.
Note: before attempting to start Jetty add following line in the install_dir/bin/jetty.sh or jetty.bat depending on the OS.
For Windows:
set JETTY_HOME=path/to/jetty/install/dir
For Linux, UNIX..:
export JETTY_HOME=path/to/jetty/install/dir
Geronimo, JBoss and JOnAS hosting in the Internet. Apache Tomcat is distributed under Apache License and its current version (6.0.20) supports Servlet 2.5 and JSP 2.1. Apache Tomcat comes with a bundled management console which provides administrators with very basic configuration capabilities. Most administration and management tasks should be done by editing the configuration files. Tomcat is supported by any known IDE and build/ deployment tools and it shows it popularity in the community.
Tomcat come with built-in clustering and session replication support. - Download link: http://tomcat.apache.org/download-60.cgi#6.0.20
- How to start: goto install_dir/bin and issue ./startup.sh or startup.bat depending on the OS
- Administration console details: URL: http://127.0.0.1:8080/manager/html Credentials: admin/admin
Note: before starting tomcat add following line in the install_dir/conf/tomcat-users.xml inside the tomcat-users node:
<user username="tomcat" password="tomcat" roles="manager"/>
Conclusion: None of this projects can fit all development and deployment plans and requirement. Each of them has its strenghts and weak points compared to other 5 competitive projects. What one need to do is testing all of them and decide which one is better.
Blog: http://weblogs.java.net/blog/kalali/
Contact: Kalali@gmail.com
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Ryan De Laplante replied on Mon, 2009/11/16 - 8:08pm
Vasilii Lukoyanov replied on Tue, 2009/11/17 - 2:00pm
Good overview, but it would be more impressive if you privided pros and cons of enlisted appservers.
Visit my website
Masoud Kalali replied on Wed, 2009/11/18 - 6:32am
in response to:
Ryan De Laplante
Hi Ryan,
I included Caucho Resin.
Thanks for bringing it up.
Kamal Mettananda replied on Wed, 2009/11/18 - 7:24am
Thanks for the list and details; but I think it would be far better if you could compare some of these with pros and cons helping us to choose.
Web: DigiZol
Scott Ferguson replied on Wed, 2009/11/18 - 11:30am
Tyler Wilchek replied on Fri, 2011/02/25 - 3:25pm