Запуск задачи rake из файла войны

Моя кодовая база изначально была написана на рубине. У него был файл rakefile.rb для выполнения миграции БД. Позже я изменил все это на jruby для простоты развертывания, которое отлично работает. Единственная проблема, с которой я сталкиваюсь, заключается в том, как запустить мою задачу rake (выполнить миграцию базы данных).

Я старался

java -jar GV_S.war -S rake db_migrate[1]

с 1 версией, но это не сработало.

это дало мне:

[Winstone 2012/03/23 18:04:56] - Beginning extraction from war file
[Winstone 2012/03/23 18:04:56] - WARNING: The Servlet 2.4/2.5 spec XSD was unavailable inside the winstone classpath. Will be retrieved from the web if required (slow)
[Winstone 2012/03/23 18:04:56] - No webapp classes folder found - /tmp/winstone6913591014121608835webroot/GV_S.war/WEB-INF/classes
[webapp 2012/03/23 18:04:57] - jruby 1.6.7 (ruby-1.9.2-p312) (2012-02-22 3e82bc8) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [linux-amd64-java]
[Winstone 2012/03/23 18:05:03] - Listener winstone.ajp13.Ajp13Listener not found / disabled - ignoring
[Winstone 2012/03/23 18:05:03] - Listener winstone.ssl.HttpsListener not found / disabled - ignoring
[Winstone 2012/03/23 18:05:03] - Winstone Servlet Engine v0.9.10 running: controlPort=disabled
[Winstone 2012/03/23 18:05:03] - HTTP Listener started: port=8080

Любая помощь будет оценена

-Спасибо


person azi    schedule 23.03.2012    source источник


Ответы (2)


похоже, это еще не поддерживается варблером - выполнение команд в стиле jruby работает с исполняемым файлом .jar, но создание исполняемого файла .war позволяет ему работать только с встроенным веб-сервером ... ничего больше.

person kares    schedule 23.03.2012
comment
привет, Карес, спасибо, что уделили время... кажется, что есть решения этой проблемы... вроде того, что обсуждалось в blog.dberg.org/2009/10/.... просто в моем случае они не работают :(... , есть и другие, которые сталкиваются с подобной проблемой.... - person azi; 26.03.2012
comment
java -jar jruby-complete-1.6.7.jar -S rake db_migrate[1] дает мне: не удалось загрузить атрибут манифеста основного класса из jruby-complete-1.6.7.jar - person azi; 26.03.2012

Наконец-то нашел то, что работает... сначала попробовал

java -jar lib/jruby-complete-1.6.7.jar -S rake db_migrate[1] 

который отлично работал на моей личной машине, но выдавал мне что-то вроде сообщения ниже о производстве

rake aborted!
cannot load Java class com.mysql.jdbc.Driver

Tasks: TOP => db_migrate
(See full trace by running task with --trace)

это было потому, что я использовал драгоценные камни, такие как сиквел, регистратор и т. д., внутри моей задачи rake .... я возглавлял те, которые были установлены на моей машине, но не на производственной машине .... установка этих драгоценных камней на производстве не была вариантом .... поэтому я установил драгоценные камни, необходимые для задачи rake, в отдельный каталог и преобразовал его в файл jar ( http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar)... эта команда наконец сработала...

java -jar lib/jruby-complete-1.6.7.jar -rlib/mygems.jar -S rake db_migrate[1]

обратите внимание: независимо от того, где вы поместите файл jar, warbler всегда отправит его в каталог lib, хотя вы все равно увидите фиктивный файл jar в исходном месте... я думаю, что решение может быть немного более аккуратным, если оно работает из нескольких способов, хотя не пробовал это....

i> включив файлы драгоценных камней в сам jruby-complete-1.6.7.jar, как упоминалось в блоге, упомянутом выше...

java -jar lib/jruby-complete-1.6.7.jar -S rake db_migrate[1]

тогда должно работать...

ii> написав какой-то файл манифеста и включив его в mygems.jar, чтобы он работал независимо... если это произойдет

java -jar myapp.jar -S rake db_migrate[1] 

должно сработать

person azi    schedule 02.04.2012