JRuby战争依赖/环境问题

时间:2014-01-20 08:31:59

标签: tomcat jruby warbler

我有用Ruby编写的基于Sinatra的应用程序,它使用warbler打包。生成的文件在我的本地笔记本电脑(Tomcat 7.0.50)和沙盒主机(Tomcat 6.0.35)上运行正常。但是,在prod box上这场战争(完全相同的文件 - 重新部署并用md5sum重新确认)显示以下错误:

org.jruby.rack.RackInitializationException: No such file or directory - file:/opt/apache-tomcat-6.0.35/webapps/blah/WEB-INF/lib/gems.jar!/gems/mail-2.5.4/lib/mail/../VERSION
 from org/jruby/RubyIO.java:3741:in `read'
 from org/jruby/RubyIO.java:3920:in `read'

Prod box具有与JVM和Apache完全相同的版本(通过Linux中当前启动的进程重新确认)。

当我解压缩gems.jar文件时,我可以看到所请求的VERSION文件已到位,因此这不是打包问题。

这场战争还取决于什么?

让我感到困惑的是,它正在处理不同的配置(我的笔记本电脑),但没有使用相同的配置(沙箱和产品)。

我正在使用JRuby 1.7.5。

1 个答案:

答案 0 :(得分:0)

现在尝试不将宝石打包到.jar中,它会更好地反映FS的期望 - {。1}},__FILE__等用法在.jar

P.S。在最新的JRuby 1.7.10中也可能有一些修复,但如果不是简单地禁用Warbler中的 gemjar 功能,那么.war确实包含了宝石(不包装在另一个jar中)