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の値がコメントされてる。
これコメントはずしてやればすんなり動いた。
でも、起動したjettyを終了する方法がわからん。バッチでctrl+cやるとバッチは終了するけど、javaのプロセスが残ってるし。