Jruby-Rack - 无法找到Rails引擎根路径

时间:2012-07-17 19:13:18

标签: ruby-on-rails ruby-on-rails-3 rubygems rack rails-engines

这是我在部署Ruby on Rails Web应用程序(使用Jetty)时遇到的错误:

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引擎形式的本地构建的gem。它是一个可隔离的可安装引擎 - Usermanagement是孤立的命名空间。宝石是用Rails 3.1.3

构建的

检查构建的WAR中的gems.jar文件以及usermanagement gem,以及config目录和lib目录所需的内容。

我遇到麻烦找到一个特定的提交,使这个休息。似乎更像是一个环境问题。

欢迎任何建议!

1 个答案:

答案 0 :(得分:2)

显然,这个错误实际上是由于Usermanagement gem中包含.class文件引起的。

由于我们的构建服务器上的权限要求,我们将构建过程安装到本地文件夹 - 即project-name/gems/gems

这一切都很好,然而,Warbler用于构建war文件,Warbler从项目目录中找到的所有.rb文件中创建类文件 - BEFORE 创建gems.jar文件。因此,我们最终在.class存档中找到了gems.jar个文件。

我仍然有点不知道为什么让类文件破坏了所有内容 - 但是,没有它们确实解决了所有问题:)

的解决方案

告诉Warbler不在webapp中包含gems目录:(在warbler.rb中)

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