Rails 3.1.3、JRuby 1.7.6、Warbler 1.3.8 を使用しています。
注: JRuby 1.6.7 を使用している場合、これは発生していませんでしたが、最近、JRuby のバージョンを更新しようとしたときに、この問題が発生しました。
Warbler を使用して、Ruby on Rails アプリケーションを WAR ファイルにパッケージ化します。そのプロセスはすべてのアセットをプリコンパイルし、すべて正常に動作します (正常に動作しているように見えますが、コマンドは成功しています)。
次に、WAR ファイルをソフトウェア (JRuby 環境 - 1.7.6 - を使用し、Web サーバーとして Jetty を使用) でデプロイします。
サーバーが WAR ファイルを解凍してデプロイしようとすると、次のエラーが発生します。
org.jruby.rack.RackInitializationException: No such file or directory - /home/production/var/tmp/Jetty_0_0_0_0_2525_ui.4.1.4.war____.ed5d4m/webapp/WEB-INF/jar:file:/home/production/var/tmp/Jetty_0_0_0_0_2525_ui.4.1.4.war____.ed5d4m/webapp/WEB-INF/lib/gems.jar!/gems/activesupport-3.1.3/lib/active_support/locale/en.yml
from org/jruby/RubyFile.java:838:in `stat'
アンパックされた WAR ディレクトリをチェックインし、gems.jar ファイルに移動してアンパックし、すべてのファイルをチェックしました - activesupport 3.1.3 en.ymlファイルがそこにあります。ファイルのアクセス許可は、私が期待するとおりです (つまり、以前の JRuby 1.6.7 と何も変わらないようです)。
EDIT JRuby 1.7.6 と Warbler 1.3.8 の間にバグがあります - https://github.com/jruby/warbler/issues/197 それに遭遇した後、私は Warber 1.4.0.beta2 を使用してみました - これはウグイスを修正します - jruby のバグですが、その修正では、欠落している locale/en.yml ファイルを再び受信できるようになるだけです。
助言がありますか?ありがとう!