2012-07-17 53 views
3

這是Rails Web應用程序(含碼頭)部署我的紅寶石時,我得到的錯誤:JRuby的機架 - 無法找到Rails的引擎根路徑

2012-07-17 13:11:25,595,INFO,service.nav.server - An exception happened during JRuby-Rack startup 
Could not find root path for #<Usermanagement::Engine:0x302abefe> 

--- Backtrace 
RuntimeError: Could not find root path for #<Usermanagement::Engine:0x302abefe> 
find_root_with_flag at file:/tmp/Jetty_0_0_0_0_2525_ui.0.0.1.SNAPSHOT.war____d9z055/webapp/WEB-INF/lib/gems.jar!/gems/railties-3.1.3/lib/rails/engine.rb:599 
config at file:/tmp/Jetty_0_0_0_0_2525_ui.0.0.1.SNAPSHOT.war____d9z055/webapp/WEB-INF/lib/gems.jar!/gems/railties-3.1.3/lib/rails/engine.rb:479 
railties at file:/tmp/Jetty_0_0_0_0_2525_ui.0.0.1.SNAPSHOT.war____d9z055/webapp/WEB-INF/lib/gems.jar!/gems/railties-3.1.3/lib/rails/engine.rb:423 
initializers at file:/tmp/Jetty_0_0_0_0_2525_ui.0.0.1.SNAPSHOT.war____d9z055/webapp/WEB-INF/lib/gems.jar!/gems/railties-3.1.3/lib/rails/engine.rb:473 
.... 

Usermanagement是在本地建寶石Rails引擎的形式。它是一個獨立的可安裝引擎 - Usermanagement是獨立的命名空間。創業板建成使用Rails 3.1.3

經過了gems.jar文件中內置戰爭和usermanagement寶石是存在的,以及它需要的東西,如config目錄和lib目錄。

我遇到了麻煩,找到一個特定的提交,使這個休息。看起來更像是一個環境問題。

歡迎任何建議!

回答

2

顯然,這個錯誤實際上是由包含在Usermanagement gem中的.class文件引起的。

由於我們構建服務器的權限要求,我們必須安裝寶石到本地文件夾生成過程 - 即project-name/gems/gems

這是所有好的和罰款,但隨後被用來鶯構建war文件,Warbler在所有.rb文件中創建類文件,這些文件在項目目錄中找到 - 之前創建gems.jar文件的。因此,我們在gems.jar歸檔文件中以.class文件結束。

我有些仍處於虧損狀態,爲什麼具有類文件打破了一切 - 但是,沒有他們不會解決所有問題:)

解決方案

告訴鶯不包括gems目錄在webapp中:(在warbler.rb中)

config.dirs = %w(app config lib log tmp)