Glassfish v3 Prelude + edge rails
By Jacob Kessler on Apr 20, 2009
I know I haven't blogged for a while, and that the hot topic for blogging today is Oracle. However, I believe in waiting a bit rather than leaping face-first into wild speculation, so that will have to wait a bit. This week is promising to be a blog-filled one, certainly.
Today's blog is on something that I've heard a few complaints about, which is edge rails running on GlassFish v3 Prelude, and the fact that it doesn't work. That seems like something reasonable to complain about right? We've even got a bug for it.
So first, I'll go over what actually doesn't work. The issue is directory deployment on Prelude with recent versions of Rails (2.3.x, if I recall correctly). GlassFish Gem works fine. Warbler, and the war files it produces, work fine (both on GlassFish v2.x and v3 Prelude). It's only directory deployment (asadmin deploy /path/to/rails/app) that doesn't work.
Now, why would that break things? Mostly because in Rails 2.3 some internal stuff that we were relying on to detect Rails applications changed, and since v3 Prelude has already been released we can't just go back and change things. That's always going to potentially be the case when you try to run new software on old software.
Now, suppose you have a nice Rails 2.3 app that you want to run on GlassFish. At this point, you have two options. Either you can use Warbler, conveniently available as a gem, to turn your app into a WAR file for deployment on GlassFish (either v2.x or v3 Prelude), or you can use GlassFish Gem, also conveniently available as a gem, to deploy your app directly from the directory that it is in. Both Warbler and GlassFish Gem are updated to work with the most recent version of rails, and can maintain the release schedule to keep pace with Rails as it continues to develop and grow. Both of them also allow you to run your app on a production-quality server, so you aren't losing anything in the way of stability by following either of them. Use GlassFish Gem if you want simplicity and ease of deployment and development, and use Warbler if you want to leverage the advanced enterprise features of GlassFish v2 or v3.