There are several reasons you may deploy JRuby-on-Rails application on GlassFish:
- Java EE is a long tested deployment platform and GlassFish is Java EE 5 compliant.
- GlassFish “green” deployment model – just create a WAR and dump it in autodeploy directory. Typical Rails deployment requires to spawn multiple Mongrels, front-ended by Apache and then manage them through Capistrano.
- Java EE and Ruby-on-Rails applications can be easily integrated in one container. This allows to host JRuby-on-Rails applications in organization who have already made investment in Java EE.
- GlassFish comes with out-of-the-box clustering and high-availability support. Rails applications can certainly benefit from them.
- GlassFish offers database connection pooling allowing you to reuse your database connections.
- Last, but not the least, JRuby-on-Rails can leverage the extensive set of Java libraries.
I’m working on an article that will explain each of these in detail. In the meanwhile here is a live success story.
mediacast.sun.com (provides a public place for Sun employees to store large media files) released their version 2.0 – completely rewritten using JRuby-on-Rails and deployed on GlassFish. Igor has good details is his blog. Here are some excerpts:
Development environment: NetBeans 6, Mercurial plugin, WEBrick, GlassFish v2 UR1, MySQL
Deployment environment: 2 Load-balanced T2000, Solaris 10, Sun Java System Application Server 9.1 U1, JDK 6, MySQL
He has explained the pain points and areas of improvements very clearly. We are aware of the performance problems and already working on them!
UPDATE (Feb : Mediacast deployment diagram is now available here.
- Developing GlassFish- and MySQL-Backed Applications with Netbeans and JRuby-on-Rails – Free Webinar on Jan 27
- JRuby, Rails, and GlassFish – “Easiest Rails stack in the world”!!!
- Developing GlassFish- and MySQL-Backed Applications with Netbeans and JRuby-on-Rails – Free Webinar on Mar 26
- GlassFish + JRuby + JRuby-Rack + Warbler = Blog Deployment Platform
- TOTD #117: Invoke a JAX-WS Web service from a Rails app deployed in GlassFish