JRuby on Rails

ここ最近作っていたRails + Extのアプリケーションをディプロイするにあたって、サーバにRubyをインストールするのも面倒なので、↓の@IT記事を参考にJRubyRailsを試しています。JRubyRailsのライブラリを含んだWARを生成できるみたいなので。
実用レベルに達したJRubyを体感してみよう(前編)
実用レベルに達したJRubyを体感してみよう(後編)

Aptanaの設定

私の環境では、Ruby + Aptana RadRailsで使っていたので、JRubyを使う設定に気づくまで迷いました。。RubからJRubyに変更するには、
ウィンドウ -> 設定 -> Ruby -> インストール済みのインタープリター
を開きます。ここでRubyJRubyが表示されるのでJRubyに変更します。そうすると、Railsなどの必要なライブラリをインストールするか聞かれますので、インストールします。
ここで表示されるJRubyは、Aptanaと一緒にインストールされるのか、Eclipseのpluginフォルダにインストールされています。最新のJRubyを使いたい場合には、JRubyのサイトからダウンロードしてイントールしておき、上記の設定でインタープリターを追加します。
私は、JRuby 1.1.4とRails 2.1.0を使っていますが、今のところ問題ないです。

JDBCの設定

おそらくAptanaの設定を行えば、JDBC経由でDBに接続するための"activerecord-jdbc-adapter"がインストールされるので、config/database.yamlを変更します。

# 〜
development:
  adapter: jdbc
  username: username
  password: password
  driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
  url: jdbc:sqlserver://localhost;databaseName=development_db

# 〜

SQL Serverの場合の設定です。当然ですが、JDBCドライバはクラスパスに入れておく必要があります。

Warbler

まず、warblerをインストールします。

>jruby -S gem install warbler
Successfully installed warbler-0.9.11
1 gem installed
Installing ri documentation for warbler-0.9.11...
Installing RDoc documentation for warbler-0.9.11...

warblerの0.9.11がインストールされました。
次に設定ファイルを作成します。Railsプロジェクトフォルダに移動して以下のコマンドを実行します。

>jruby -S warble config

これで、config/warble.rbが作成されるので、以下の箇所を変更します(変更箇所のみ記述)。

# Warbler web application assembly configuration file
Warbler::Config.new do |config|
  # activerecord-jdbc-adapterを使えるように設定します。
  config.gems += ["activerecord-jdbc-adapter", "jruby-openssl"]

  # Railsのバージョンを指定します
  config.gems["rails"] = "2.1.0"

  # デフォルトでdevelopmentモードで動作するようにします。
  config.webxml.rails_env = 'development'
end

以下のコマンドを実行し、warファイルを作成します。

>jruby -S warble

これで、プロジェクト名.warというファイルが作成されるので、Tomcatのwebappフォルダにコピーしてディプロイします。

初めにwarを作った際には、なぜかWEB-INF\gems\gemsフォルダにrailsが入っていなくてエラーが出てていたのですが、railsをインストールしなおしてwarを作ったところ無事、ディプロイできました。

一度手順がわかってしまえば簡単なので、私のように普段はJavaがメインでTomcatが動いているサーバがあるので、という環境ではオススメです。