2012-03-23 2 views
0

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

Я попытался

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 

Любая помощь будете иметь в виду,

-Спасибо

ответ

0

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

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 .... Я возглавляю те, которые установлены на моей машине, но не на производственной машине .... установка этих драгоценных камней на производство не была опцией .... поэтому я установил драгоценные камни, необходимые в задаче грабли в отдельном каталоге и преобразованные в банке файл (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] 

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

i> by включая файлы драгоценных камней в 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] 

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

0

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

+0

hi kares, спасибо за ур время .... похоже, что есть решения этой проблемы ... как описано в http://blog.dberg.org/2009/10/run-dbmigrate-in- jruby-without-rails.html .... это просто, что они не работают в моем случае: (.... есть другие, которые сталкиваются с аналогичной проблемой тоже .... – azi

+0

java -jar jruby-complete-1.6. 7.jar - S rake db_migrate [1] дает мне: Не удалось загрузить атрибут манифеста Main-Class из jruby-complete-1.6.7.jar – azi

Смежные вопросы