развертывание приложения jruby on rails

Я пытаюсь развернуть приложение jruby on rails.

Прямо сейчас я запускаю mongrel + Apache2, используя обратный прокси от mod_proxy. Однако, поскольку mongrel_jcluster не работает с последними версиями jruby, я могу запустить только один mongrel-сервер и не могу воспользоваться балансировкой нагрузки от apache2.

Есть ли другой способ создать кластер дворняг? Я действительно предпочел бы кластер mongrel + apache2 системе типа сервлета Java.

Я попробовал причал, используя инструкции здесь: http://jetty-rails.rubyforge.org/

но я получаю следующую ошибку при запуске сервера причала, хотя я проверил свою версию гем-адаптера activerecord-jdbcmysql-adapter под jruby и ее там и версию 0.9.7

DEPRECATION WARNING: require "activesupport" is deprecated and will be removed in Rails 3. Use require "active_support" instead. (called from /home/andrew/.gem/jruby/1.8/gems/activesupport-2.3.8/lib/activesupport.rb:2)
2010-07-20 17:00:46.820::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
Starting server 3000
2010-07-20 17:00:47.134::INFO:  jetty-6.1.14
2010-07-20 17:01:03.511:/:INFO:  Info: using runtime pool timeout of 30 seconds
2010-07-20 17:01:03.511:/:INFO:  Info: received min runtimes = 1
2010-07-20 17:01:03.511:/:INFO:  Info: received max runtimes = 5
Loading parser from serialized file lib/stanford-parser/englishPCFG.ser.gz ... done [4.6 sec].
2010-07-20 17:01:14.341:/:WARN:  Error: unable to initialize application
org.jruby.rack.RackInitializationException: Please install the jdbcmysql adapter: `gem install activerecord-jdbcmysql-adapter` (no such file to load -- active_record/connection_adapters/jdbcmysql_adapter)

любые предложения будут оценены, спасибо!

РЕДАКТИРОВАТЬ: я не знаю, имеет ли это значение, но я могу сказать, что перед сбоем jetty_rails успешно загружает глобальную переменную, объявленную в файле environment.rb.

РЕДАКТИРОВАТЬ: вот мой полный список драгоценных камней от jruby -S gem list --local

*** LOCAL GEMS ***

actionmailer (2.3.8)
actionpack (2.3.8)
activerecord (2.3.8)
activerecord-jdbc-adapter (0.9.7)
activerecord-jdbcmysql-adapter (0.9.7)
activeresource (2.3.8)
activesupport (2.3.8)
builder (2.1.2)
gem_plugin (0.2.3)
jdbc-mysql (5.0.4)
jetty-rails (0.8.1)
jruby-jars (1.5.1)
jruby-openssl (0.7)
jruby-rack (1.0.1)
mizuno (0.3.6)
mongrel (1.1.5)
rack (1.1.0)
rails (2.3.8)
rake (0.8.7)
rubyzip (0.9.4)
sources (0.0.1)
warbler (1.1.0)

person Andrew    schedule 20.07.2010    source источник


Ответы (2)


Возможно, вы переключаетесь между несколькими интерпретаторами ruby ​​(через RVM или вручную). Убедитесь, что у вас есть драгоценные камни 2.3.8 для рельсов и их зависимости, запустив «список драгоценных камней» с помощью Jruby.

Если у вас нет драгоценных камней под Jruby, запустите «gem install -v=2.3.8 rails». Вы можете упаковать драгоценные камни рельсов внутри дерева проекта, запустив «rake rails:freeze:gems».

person sespindola    schedule 20.07.2010
comment
У меня есть драгоценные камни под jruby, jruby -S gem list --local дает мне список драгоценных камней, и у них есть правильная версия, но причал их не находит. замораживание драгоценного камня рельсов исправило эту точную ошибку, но я получил ту же ошибку сначала для стойки, которую я решил, удалив и переустановив драгоценный камень, а теперь и для activerecord-jdbcmysql-adapter, который я не могу решить (пробовал удалить и переустановить, и заморозка, заморозка просто не сработала) - person Andrew; 21.07.2010

Единственный возможный ответ, который я знаю, заключается в том, что у вас в системе есть два интерпретатора ruby, и в том, который подхватывается средой причала, отсутствуют драгоценные камни. ruby -v дает вам другой ответ, чем jruby -v?

При этом есть ли причина, по которой вы не хотите использовать трель и развертывать войну на Jetty или Tomcat? Я считаю, что это работает хорошо.

person Mark Thomas    schedule 21.07.2010
comment
Я подумал, что это может быть проблемой, поэтому, прежде чем публиковать этот вопрос, я удалил ruby, поэтому ruby ​​-v дает мне «ruby в настоящее время не установлен», а jruby -v дает мне jruby 1.4.0 (ruby 1.8.7 patchlevel 174) ( 2010-02-11 6586) (Java HotSpot(TM) Client VM 1.6.0_20) [i386-java] - person Andrew; 21.07.2010