这是我在部署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
目录所需的内容。
我遇到麻烦找到一个特定的提交,使这个休息。似乎更像是一个环境问题。
欢迎任何建议!
答案 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)