2014-01-20 265 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中)。