JBoss on Rails: Deploying Rails Apps to a JBoss App Server
Java-heads will be familiar with JBoss, a popular Java EE-based application server. Bob McWhirter has been working on a plugin to make it easy to deploy Rails applications to a JBoss app server - something that could be quite appealing if you work in a Java-only zone (common in managed deployment situations) or if you want to sell your code to enterprises with this restriction. Bob's deployer is called, simply, jboss-rails (Github repository) and it deploys Rails applications to JBoss AS 5.x servers using JRuby and JRuby-Rack. He's also written several blog posts about it. JBoss on Rails gives an overview of actually deploying an app, JBoR: Will it cluster? looks at the clustering situation, and there are instructions for installing and using jboss-rails. There are also some slides from a presentation he recently gave at Raleigh RubyCamp. Rails has already been easily deployable in Java-land by using Glassfish, but it's nice to see other options available.
In comments, Rich adds (thanks!):
FYI — Rails on other Java appservers is old news. ThoughtWorks runs Mingle on Jetty (early '07), Oracle runs http://mix.oracle.com on Oracle App Server (Oct '07), and I've seen one or two other sites running on WebLogic.
November 20th, 2008 at 9:56 pm
FYI -- Rails on other Java appservers is old news. ThoughtWorks runs Mingle on Jetty (early '07), Oracle runs http://mix.oracle.com on Oracle App Server (Oct '07), and I've seen one or two other sites running on WebLogic.
November 20th, 2008 at 10:00 pm
Thanks for the clarification - I've added it to the post.
November 21st, 2008 at 3:23 am
Not to downplay the benefits of easy deployment and updating of applications, and not having to install new software (Mongrel, Apache), what are the other benefits? Do Java app servers run Rails faster? Can you scale the applications across servers easier?
November 21st, 2008 at 4:39 pm
I just posted a review of this on my blog : http://brianketelsen.blogspot.com/2008/11/jboss-rails-plugin.html To answer one of the previous questions by my esteemed Florida neighbor, JBoss clustering will allow you to deploy to one server and the app will propagate to all the other servers in the cluster. It will also allow shared in-memory sessions. There are a lot of good benefits to running Rails on a full application server, and this plugin is a really good start towards making it dead simple.
November 22nd, 2008 at 3:16 pm
That feels so wrong, I don't even know where to begin.
November 22nd, 2008 at 4:15 pm
In a "it feels so wrong but so right" type way, or just a "totally wrong" way?
November 23rd, 2008 at 4:45 pm
@petercooper jboss brings back memories of developing with struts, spring and hibernate. not that there's anything wrong with jboss. much like rails + websphere... it's just... wrong! ;)
November 23rd, 2008 at 10:19 pm
Wrong in the sense of getting access to at least halfway integrated stack of infrastructure for messaging, deployment, clustering, thread- and connection-pooling etc.?! Instead of perpetuating the very same prejudices against running rails on a full blown jee-stack, I'd really liked to see some more projects exploiting the fact that you don't have to jump through hoops (even if it is only in the backgrounDRb...) just to get something processed asynchrounosly....