我正在使用 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 - 并使用 Jetty 作为 Web 服务器)
当服务器尝试解压和部署 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 似乎没有什么不同)
编辑 JRuby 1.7.6 和 Warbler 1.3.8 之间存在一个错误 - https://github.com/jruby/warbler/issues/197 遇到之后,我尝试使用 Warber 1.4.0.beta2 - 它修复了莺 - jruby 错误,但该修复只能让我再次接收丢失的 locale/en.yml 文件。
有什么建议么?谢谢!