2012-07-17 52 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)