2008年11月24日月曜日

Redmine on GlassFish -5

えー、しつこく Redmine on GlassFish にこだわっています(笑)
(別にそれほどRedmineが好きなわけではないのですが、やり始めてしまったのでなんとなく…)


先日の Deploy 成功後、ローカライズ文字が正しく表示されなかった件について。
GlassFish QalityチームのMLに質問を投げたり、ログを調べたりと悪あがきを続けた結果、ついに原因を突き止めました。


原因:ズバリ、WARファイルにlangディレクトリが入っていなかった。


幽霊の正体見たり枯れススキ、というのはこういうことを言うんでしょうか…(--*


Redmineにはルートディレクトリの配下にlangというディレクトリがあり、この中に各国語へのローカライズ用文字列を格納したリソースファイルみたいなのが入っています。Redmineはこれらのリソースファイルを参照して画面表示などを行うため、それがなければ当然ながら正しい表示は行えません。

で、Warblerはデフォルトの状態ではこのlangディレクトリをWARファイルに含めてくれないのです。フタをあけてみれば「なーんだ」というような話ですが、RubyにもRailsにも疎い私にとって、解明まではイバラの道でした。

WarblerがWarファイルに含めるファイル/ディレクトリはWarblerのコンフィグファイル(通常rails_root/config/warble.rb)を操作して変更することができるので、langディレクトリを含めるよう修正。

こんな感じです↓
-------------------------
# Application directories to be included in the webapp.
config.dirs = %w(app config lib log vendor tmp lang)
-------------------------

しかるのちに jruby -S warble でWARファイルを作り直せば、langディレクトリがきちんと入ったredmine.warが完成です!

早速GlassFish v3 prelude にDeployしてみましょう。




…やったー、今度はきちんと表示されました!

なお、GlassFish v3を使うと、RailsアプリケーションをWAR化しないでディレクトリからそのままデプロイすることも可能、なのですが、これは今のところ上手くいっていません。
デプロイまではできるのですが、なんだかよく分からない例外がスローされて画面が出てきてくれないのです。

まぁ、こちらもきっと私が何かを見落としているのでしょう…(-。-
地道に頑張りたいと思います。

0 件のコメント: