JRubyで作ったRailsアプリをJavaで動かす。

Jruby on Rails on Tomcatを参照しながら。

環境は


  • JRuby-1.1.1
  • Rails2.0.2
  • GoldSpike

Rails2だけど、GoldSpikeでやってみる。というのは、「Rails2は Warblerで」みたいに書いてあるけど、

Copy the generated file $YOUR_APP_NAME.war to $TOMCAT_HOME/webapps and it should auto deploy

らしいので、それはめんどくさい。GoldSpikeはjettyつかって、webrickみたいに単体で起動できる。
jruby -S rake war:standalone:run

普通にrailsアプリ作って、scaffoldでgenerateして、migrateするとエラー。jdbcのconnector(今回はmysqlのコネクター)が見つからないそうです。mysql.comからダウンロードしてきて、以下に置く。
%RUBY_HOME%\lib

migrateは成功し、テーブルが作られたので起動してみる。
起動は成功したが、ここでもconnectorがClassNotFoundExceptionとなる。う〜んなんで、%RUBY_HOME%\libにおいたんだろう??
ま〜深く考えずWEB-INF\lib以下にコネクターを置いて、再度起動。インデックスは表示できたけど、newにアクセスすると以下のエラー
ActionController::InvalidAuthenticityToken in People#new


う〜んよくわからんから、ググってみるとGoldSpikeのせいみたい。Goldspike怪しいって書いてるし。
Tomcat6+Rails2.0.2(Goldspike)な環境で色々問題が

しょうもなかった。
jrubyで作ったrailsアプリのprotect_from_forgeryの値がコメントされてる。
これコメントはずしてやればすんなり動いた。

JRuby1.1 on Rails

でも、起動したjettyを終了する方法がわからん。バッチでctrl+cやるとバッチは終了するけど、javaのプロセスが残ってるし。