3

私は、Rails 3 上の jRuby を Tomcat 6 にデプロイするのに苦労してきました。

次のように、jRuby をチェックするように database.yaml と Gemfile を変更しました。

if defined?(JRUBY_VERSION)
    gem 'jdbc-mysql'
    #gem 'jdbc-sqlite3'
    gem 'activerecord-jdbc-adapter'
    gem 'activerecord-jdbcmysql-adapter'
    #gem 'activerecord-jdbcsqlite3-adapter'
    gem 'jruby-openssl'
    gem 'jruby-rack'
    gem 'warbler'
else
    gem 'mysql'
    gem "mongrel"
    gem 'ruby-debug'
end

いくつかの環境設定:

$ rvm -v
rvm 1.0.14 

$ jruby -v
jruby 1.5.3 (ruby 1.8.7 patchlevel 249) (2010-09-28 7ca06d7) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20) [x86_64-java]

私が実行すると、jruby -S bundle installすべてがスムーズに進みます。

のようなことをしようとしたときrake db:migratejruby -S rake db:migrateまたはwarble50 の DEPRECATION WARNING と最終的なスタックオーバーフローが発生したときです。

ウグイスプラグインを削除することでこの問題を解決しましたが、その行が気に入らなかったWarbler::Task.new

次に、実行warble configして config/warbler.rb ファイルを取得しました。

最後にwarble、.war ファイルを作成します。ここまでは順調ですね。

次に、.war ファイルを Tomcat Web アプリケーションに移動します。エラーを除いて、すべて正常に動作します。

Oct 10, 2010 1:34:46 AM org.apache.catalina.core.ApplicationContext log
SEVERE: Application Error

org.jruby.rack.RackInitializationException: 
http://github.com/plataformatec/devise.git (at master) is not checked out. 
Please run 'bundle install'

webapps/myapp/WEB-INF に入って実行することで、この問題を一度だけ解決しましたjruby -S bundle install

機能しなくなり、何が起こっているのかわかりません。

4

2 に答える 2

2

これは、現在のバージョンの Warbler のバグと言えると思います。Gemfile で git リポジトリを使用すると、war ファイルで適切にステージングされず、Bundler はまだディスク上のチェックアウトされたリポジトリを探しています。

Warbler の将来のバージョンでは、おそらくbundle --deploymentwar ファイルを作成するときと同様のことが行われるでしょう。

今のところ、これを回避するには、デバイス コードを販売する必要があるかもしれません。

于 2010-10-11T16:01:05.307 に答える