NetBeans 6.0BetaのRuby Pack

6.0M10に比べてかなり改善されたようです。ドキュメントも増えました。http://www.netbeans.org/kb/trails/ruby.htmlにわかりやすくまとめられています。

6.0Betaから、Goldspike(元Rails-Integration)というJava Web Archiveを作るプラグインがついてきています。Railsのプロジェクトを作るときに"Add rake target to support app server deployment (.war)"にチェックするとrake task一覧にwarが追加されます。クリックするだけで、プロジェクトのディレクトリにプロジェクト名.warというファイルが作られます。(この例の場合、/home/yoko/6.0BetaNetBeansProjects/test/test.war)
http://www.servletgarden.com/images/Beta_NewRailsProject.png
http://www.servletgarden.com/images/Beta_Goldspike.png
このメニューで何が作られるのかはhttp://www.headius.com/jrubywiki/index.php/Rails_Integrationに詳細な説明がありますが、

  • war -> shared -> create : JRubyRailsの環境を含まないアプリケーションのみのWAR。GlassFishTomcatのようなサーバがJRuby on Railsの環境を持っている場合に選ぶ。
  • war -> standalone -> create : JRubyRailsの環境を含むアプリケーションのWAR。
  • war -> stansalone -> run : Jettyを使ってWebアプリケーションを動かす。

のような違いがあります。試しに、standaloneのWARを作ってTomcatGlassFishで動かしてみました。動かしたのはFour Days on RailsのDay1にあったCategory登録と一覧表示のアプリケーションです。通常のRailsアプリケーションと違うところは次の2点です。

  • Railsプロジェクトを作るときに、"Access database using JDBC"と"Add rake target..."の両方にチェックします。TomcatGlassFishで動かすときにはJDBC経由でデータベースに接続するので。
  • database.ymlのproductionのところにJDBCでの接続を設定します。
production:
  adapter: jdbc
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/todos?characterEncoding=utf8
  username: foo
  password: bar

GlassFishの場合、glassfish-v2-b58g/domains/domain1/autodeployにWARファイルをコピーし、glassfish-v2-b58g/libにJDBCドライバのアーカイブをコピーします。Tomcatの場合、apache-tomcat-6.0.14/webappsにWARファイルをコピーして、apache-tomcat-6.0.14/libにJDBCドライバのアーカイブをコピーします。

サーバを起動してhttp://localhost:8080/ToDo/categoryをリクエストして、いくつかcategoryを追加したのがこちらです。
http://www.servletgarden.com/images/Rails_in_Tomcat.png

WARファイルを作るところまでは簡単になりました。ただ、デバッガはまだJRubyでは動きません。MLへの投稿を見るとJRuby版Fast Debuggerを作っているところらしいので、正式版なら動くようになるのかも、です。