3

これは、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 Engine の形でローカルに構築された gem です。これは分離されたマウント可能なエンジンです - Usermanagement は分離された名前空間です。この宝石はRails 3.1.3で構築されています

ビルドされた WARのファイルをチェックすると、usermanagement gem がそこにあり、ディレクトリやディレクトリgems.jarなどの必要なものもあります。configlib

この中断を引き起こす特定のコミットを見つけるのに苦労しています。環境の問題である可能性が高いようです。

どんなアドバイスでも大歓迎です!

4

1 に答える 1

2

どうやら、このエラーは実際には Usermanagement gem に含まれる .class ファイルによって引き起こされていたようです。

ビルド サーバーのアクセス許可要件により、ビルド プロセスで gem をローカル フォルダーにインストールする必要がありました。つまり、project-name/gems/gems

これはすべて問題ありませんでしたが、war ファイルをビルドするために Warbler が使用され、gems.jar ファイルを作成する前に、Warbler がプロジェクト ディレクトリで見つかったすべてのファイルからクラス ファイルを作成.rbします。したがって、最終的にアーカイブ内のファイルになりました。.classgems.jar

クラスファイルを持っているとすべてが壊れる理由について、私はまだ途方に暮れています-しかし、それらを持っていないとすべてが修正されます:)

解決

Web アプリケーションにディレクトリを含めないように Warblergemsに指示しました: (warbler.rb 内)

config.dirs = %w(app config lib log tmp)
于 2012-07-27T15:27:40.530 に答える