JRuby on Rails
ここ最近作っていたRails + Extのアプリケーションをディプロイするにあたって、サーバにRubyをインストールするのも面倒なので、↓の@IT記事を参考にJRubyでRailsを試しています。JRubyとRailsのライブラリを含んだWARを生成できるみたいなので。
実用レベルに達したJRubyを体感してみよう(前編)
実用レベルに達したJRubyを体感してみよう(後編)
Aptanaの設定
私の環境では、Ruby + Aptana RadRailsで使っていたので、JRubyを使う設定に気づくまで迷いました。。RubからJRubyに変更するには、
ウィンドウ -> 設定 -> Ruby -> インストール済みのインタープリター
を開きます。ここでRubyとJRubyが表示されるので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が動いているサーバがあるので、という環境ではオススメです。