2014-01-20 60 views
1

我有用Ruby编写的基于Sinatra的应用程序,它使用warbler打包。生成的文件在本地笔记本电脑(Tomcat 7.0.50)和沙箱主机(Tomcat 6.0.35)上正常工作。然而,在PROD箱这场战争(完全相同的文件 - 重新部署,并再次确认的md5sum)显示以下错误信息:JRuby战争依赖关系/环境问题

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箱有JVM和Apache的版本完全相同(通过目前启动的进程在Linux中再次确认)。

当我解压gems.jar文件,我可以看到要求VERSION文件就位,所以这不是一个包装问题。

这场战争还有什么依赖?

让我感到困惑的是,它在不同的配置(我的笔记本电脑)上工作,但不在相同的配置上工作(沙盒&产品)。

我使用JRuby 1.7.5。

回答

0

尽量不要打包成宝石的.jar现在,这将更好地反映FS预期 - 有问题不时与__FILE__File.expand_path等的使用在一个.jar

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