Which Java EE 6 App Server ? - JBoss 6.0 or GlassFish 3.x
By arungupta on Jan 03, 2011
It's been over a year that Java EE 6 was released in Dec 2009 along with GlassFish as the Reference Implementation. JBoss contributed two new specifications to the Java EE 6 platform - JSR 299 (Contexts & Dependency Injection) and JSR 303 (Bean Validation) and contributed in multitude of other ways to make the platform successful, many thanks for that. RedHat released JBoss 6.0, their first Java EE 6-compliant app server (no production support and only Java EE 6 Web Profile) last month, a very hearty congratulations to them!
Resin is also making good progress and should be coming out soon too, Websphere 8.0 Beta already has support for Java EE 6, Oracle WebLogic coming out later this year. Read "From 2 to 8: Java EE 6 App Servers" for couple of months old status on Java EE 6 compliance.
This blog highlights some key differences between the GlassFish 3.x and JBoss 6 (based upon publicly available information and some basic experiment on my personal machine):
|Features/AppServer||GlassFish 3.0.1||JBoss 6.0|
|Compliance||Full Java EE 6, and Java EE 6 Web-Profile||Java EE 6 Web-Profile Only|
|Download Size||33-52 MB for Web Profile, 34-85 MB full Java EE 6||181.3 MB|
|Installer||Zip and .sh/.exe installers||Zip only|
|Release Maturity||1 year+||About 1 week|
|IDE Integration||NetBeans, Eclipse, IntelliJ||Eclipse (primarily), NetBeans|
|Web-based Admin Console||Yes||Yes|
|Clustering||Coming in 3.1||Yes|
|Startup Time (3 consecutive start/stop on 4GB MacBook Pro with default settings)||
GlassFish Server Open Source Edition 3.0.1 (22) startup time : Felix(10330ms) startup services(1680ms) total(12010ms)
JBossAS [6.0.0.Final "Neo"] Started in 35s:210ms
|Docs||Comprehensive||Minimal, mostly placeholders and in some places pointing to older 5.x docs.|
|Maven||Listed on download page.||Could not find them listed here.|
Let me know if any of the points need correction.
And now some miscellaneous bullet points ...
JBoss Download page says "This is a community project and, as such is not supported with an SLA.". Clicking on the Download link again shows a warning "Community projects represent the latest development releases and are not supported". So you can download JBoss 6 and use it for development but would you like to use an unsupported product, with no SLA, in production ?
The first Java EE 6 implementation, i.e. GlassFish, is available and tested in multiple scenarios for over a year.
The zip-install required manual intervention:
inflating: jboss-6.0.0.Final/docs/licenses/Gnu Lesser Public License - lesser.html replace jboss-6.0.0.Final/docs/licenses/GNU Lesser General Public License - lgpl.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y inflating: jboss-6.0.0.Final/docs/licenses/GNU Lesser General Public License - lgpl.txt
- Only Java EE 6 web profile compliance in JBoss means there is no way to use other Java EE features yet. And so you are stuck if your needs grow beyond Web Profile.
- Going to http://localhost:8080/admin-console starts a hidden Java window as well, found it slightly weird!
- The release notes is just a buglist with no instructions on supported platforms etc.
- Stopping the container took over a minute, 1m:3s:692ms to be precise. And this is when only Admin Console was accessed and no app was deployed.
The articles like "New JBoss puts Java EE 6 to Work" by PC World and others with similar heading are misleading when they say "one of the first enterprise-grade application servers to fully support Java EE 6". How can an App Server be enterprise-grade and yet not offer commercial support and minimal documentation ? And also Java EE 6 is already put to work in multiple GlassFish deployments so not sure what it means "puts to work".
Both WebLogic and GlassFish are equally strategic for Oracle. If you want to use open source, light-weight (highly modular, smaller size, high speed, not "not enterprise ready") development/deployment, and cutting edge Java EE 6 features then pick GlassFish. If you want integration with Coherence, Fusion Apps, sophisiticated deployment scenarios then pick Oracle WebLogic. And WebLogic builds upon the innovation done in GlassFish by sharing multiple components anyway.
In addition, the current release of WebLogic Server (11g 10.3.3) has support for some of the key Java EE 6 standards like JSF 2.0 and JPA 2.0. The upcoming WebLogic release (11g 10.3.4) will have support for some other Java EE 6 specifications as well. And Java EE 6 compliance in WebLogic is also coming later this year.
Where are you deploying Java EE 6 applications ?