検索
連載

Java屋がTomcatでRuby on Railsを試すには?実用レベルに達したJRubyを体感してみよう(後編)(2/2 ページ)

Share
Tweet
LINE
Hatena
前のページへ |       

Warblerでwarのパッケージ化をしよう

 続いて、前編で作成したToDo管理アプリケーションを、Tomcat上で動かすためにwar(Web Application Resources)ファイル化します。

Warblerとは何か?

 アプリケーションをwarファイル化するには、前述のWarblerを利用します。WarblerはRailsアプリケーションをwar化するGoldspikeをラッピングする形で作成しています(Warbler 0.9.5)。Goldspikeはwarファイルを作成するときにJavaサーブレット標準のフォルダ構成に準拠しない構成でwarファイルを作成してしまいます。一方、Warblerは動的ファイルを「WEB-INF」フォルダ以下に配置し、「.svn」「test」といった不要なファイルをwarファイルに含めません。

Warblerを使ってwarファイルを作成する手順

 手順は以下のとおりです。

  1. 「warbler config」コマンドでwarbler.rbを作成
  2. warbler.rbを編集
  3. 「warbler war」コマンドでwarファイルを作成

 warbler.rbを作成するには、コマンドプロンプト上でwar化したいプロジェクト(例、ToDoManager)に移動して、以下のコマンドを実行します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 コマンドが成功すると、「ToDoManager\config\warble.rb」ファイルができます。

 続いて、warble.rb中の赤文字の部分を編集して、作成するwarファイルのRailsのバージョンや含めるパッケージの設定を行います。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 最後に、warファイルを以下のコマンドで作成します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 成功すると、「プロジェクト名.war(例、ToDoManager.war)」ファイルができています。

 なお、warを作り直す場合は以下のコマンドを実行してwarファイルのために一時領域を削除します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

ついに発進! Tomcat on Rails

 warファイルを作ることができたら、いよいよTomcat上にデプロイしましょう。warファイルさえ作成しておけば、デプロイ作業は非常に簡単です。Tomcatインストールフォルダの「webapps」フォルダに作成したwarファイル(ToDoManager.war)をコピーするだけです。

 このときDerbyと接続するので、RadRailsを起動しておいてください。RadRailsを起動すると、Derbyが起動します。

Ruby on Rails 2.0の新機能「Cookie Session Store」

 ここでTomcatを起動します。Tomcatが起動したらすぐに動作を確認したいところですが、このままではアプリケーションは動作しません(Warbler 0.9.5の場合、※注2)。WarblerのベースになっているGoldspikeがRuby on Rails 2.0の新機能である「Cookie Session StoreCookieを使うセッション管理)」に対応していないためです。

 回避するためには、web.xmlを編集する必要があります。Tomcatのインストールフォルダにある「【プロジェクト名】/WEB-INF/web.xml」に以下の行を追加します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 毎回warファイルを展開した後に上記コードの追加を行うのが手間な場合は、Warblerでwarファイルを作成するときに静的なweb.xmlを渡すことが可能です。「【プロジェクトルート】/config」フォルダに上記コードを追加したweb.xmlを置いておくことで、次回からwarファイルを作成したときに自動的に含めます。

※注2:2008年7月現在の最新版であるWarbler 0.9.9では、WarblerのベースがGoldspikeからJRuby Rackに変更されているため、すでに対応済みです。ただし、RadRailsに同梱されるJRuby 1.1 RC2では動作が不安定なので、注意してください

Tomcat on Railsの動作確認

 web.xmlを編集したら、Tomcatを再起動します。Tomcatが起動したのを確認したら、【プロジェクト名】/【アプリケーション名】のURLにアクセスします(例、http://localhost:8080/ToDoManager/todos)。すると、Tomcat上でToDo管理アプリケーションが動作していることを確認できます。

図4 Tomcatで動作確認(画像をクリックすると、拡大します)
図4 Tomcatで動作確認(画像をクリックすると、拡大します)

実業務でも使われ始めたJRuby on Railsに期待

 本稿では、前編・後編と2回にわたってJRuby on Railsを紹介しましたが、いかがでしたか?

 JRuby on Railsのメリットに注目して紹介してきましたが、まだまだ商用レベルでの実績は少なく、安定性に欠ける部分もあるかもしれません。しかし、RubyやJRubyで開発実績のある伊藤忠テクノソリューションズと帳票ベンダのウイングアーク テクノロジーズが、2008年7月14日からエンタープライズ市場を対象にJRubyを利用した帳票ソリューションの共同展開を開始するという発表もありました(参考)。JRuby on RailsはこれからもRubyとJavaのイイとこ取りをしながら発展をしていくことでしょう。

 RadRailsを使えば、手軽にJRuby on Railsを試すことができますので、皆さんもJRubyでRailsに乗ってみませんか?

@IT関連記事

この記事は、プログラミングに誇りを感じるヒトのための技術情報フォーラム「Coding Edge」との連動企画です。このフォーラムには、Rubyの情報が多数掲載されます


JRuby on RailsやJava EE開発に便利なNetBeans
Eclipse対抗馬の本命!? NetBeansとは?(後編) NetBeansはDB連携やWebアプリケーション、いま注目のJRuby on Railsの開発も簡単で、便利な機能がてんこ盛り
Java Solution」フォーラム 2008/3/17

(Java+Derby)* Ruby on Rails プログラミング
小山博史のJavaを楽しむ(4) 世の中には、JavaなまりのRubyである「JRuby」という言語がある。しかも、それがRailsで使えるとなると……。試してみない手はないだろう
Java Solution」フォーラム 2007/2/7

Ruby On Railsのチームに学ぶ仕事術
安藤幸央のランダウン(30) 素早い開発を提供するRuby On Rails。その開発チームも、優れたツールの活用でRuby On Railsのスピーディーな開発を実現している
Java Solution」フォーラム 2006/3/25

WebプログラマはRailsに乗るべきか?
安藤幸央のランダウン(29) 日本で産まれたスクリプト言語Ruby。そのWebフレームワークとして海外から登場したRuby on Railsは驚異的なRADを提供するという
Java Solution」フォーラム 2006/2/11

スクリプト言語をサポートするEclipseプラグイン
CoolなEclipseプラグイン(10) EclipseはJava以外の言語もサポートする。今回はPerl、Ruby、Pythonなどのスクリプト言語をサポートするプラグインを紹介する
Java Solution」フォーラム 2006/2/25

JavaエンジニアのためのRuby入門
何だか盛り上がっているRuby。「でも触ったことないし」とためらうJavaエンジニアの皆さん! この2つ、実はよく似ているのです
第1回 Javaエンジニアにこそ、Rubyの良さが分かる
第2回 JavaとRubyの共通点と相違点
第3回 Strutsの知識を基に、Ruby on Railsを学ぶ方法
自分戦略研究所 > スキル創造研究室

プロフィール

佐藤 聖規(さとう まさのり)

某大手SIerに勤務し、ソフトウェア開発の抜本的生産性向上のためEclipseを中心とした開発環境の整備に日夜いそしんでいる。その傍ら、アーキテクトやトラブルシューターとしてプロジェクト支援も行っている。


前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る