jRuby и проблемы с камышевкой, RVM и Tomcat - PullRequest
3 голосов
/ 10 октября 2010

Мне было трудно установить jRuby на Rails 3 на Tomcat 6. Он заработал ровно один раз.

Я изменил свои database.yaml и Gemfile, чтобы проверить наличие jRuby, что-то вродеэто:

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:migrate, jruby -S rake db:migrate или warble, что я получаю 50 ПРЕДУПРЕЖДЕНИЙ ОБ УСТРОЙСТВЕ и возможный стекопоток.

Я решил эту проблему, удалив плагин warbler, ему не понравилась строка Warbler::Task.new

Затем я запустил warble config, чтобы получить файл config / warbler.rb.

И, наконец, warble для создания моего .war-файла.Пока все хорошо.

Теперь я перемещаю файл .war в мои веб-приложения Tomcat.Все работает отлично, за исключением ошибки:

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

Это больше неработает, и я понятия не имею, что происходит.

Ответы [ 2 ]

2 голосов
/ 11 октября 2010

Я считаю, что это можно назвать ошибкой в ​​текущей версии Warbler. Использование git-репозиториев в вашем Gemfile не совсем правильно организовано в файле war, и Bundler все еще ищет извлеченное хранилище на диске.

Будущая версия Warbler, вероятно, сделает что-то вроде bundle --deployment при создании файла войны.

На данный момент, чтобы обойтись, вам, возможно, придется продать код разработки.

0 голосов
/ 07 декабря 2012

Текущая версия warbler (1.3.6) также будет демонстрировать это поведение, если вы создадите файл войны с warbler war.Я обнаружил, что сборка со следующей командой работает:

warbler compiled war

Надеемся, что будущие версии решат эту проблему более полно.

...