我正在使用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 - 它修复了warbler-jruby bug,但是这个修复程序只能让我远远地再次收到丢失的locale / en.yml文件。
有什么建议吗? 谢谢!
答案 0 :(得分:3)
我试图重现你的问题,但无法做到。我安装了Rails 3.1.3,Warbler 1.4.0.beta2和JRuby 1.7.6。创建新的Rails应用程序后,我创建了一个控制器/视图,预编译了我的资产,然后通过运行warble
创建了一个战争。然后我将我的WAR转储到Jetty 9.0.6(v20130930)。
我能够导航到应用程序,大量文件位于WAR WEB-INF/gems/gems/activesupport-3.1.3
(总共253个)中。
您是否有可能正在改变构建WAR的自定义warbler文件?也许你可以删除它并尝试“库存”鸣鸟配置。
答案 1 :(得分:1)
我会尝试使用warbler 1.4.0.beta2来查看它是否已修复