2012-03-23 182 views
0

我的代碼庫最初是用ruby編寫的。它有一個rakefile.rb文件來執行數據庫遷移。我後來改變了整個事情jruby易於部署工作正常。我唯一遇到的問題是如何運行我的rake任務(執行數據庫遷移)。從war文件中運行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 

任何幫助「會理解

-Thanks

回答

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任務中所需的gem位於單獨的目錄中並進行轉換它變成一個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文件,鶯「永遠都會發送這lib目錄,雖然你」我仍然會在原始位置看到一個虛擬jar文件... 我認爲解決方案可以有點整理如果解決了幾種方法,雖然沒有嘗試過....

i> by包括上面提到的博客中提到的jruby-complete-1.6.7.jar中的gem文件...

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

這似乎不鶯尚不支持 - 執行JRuby的風格commads了可執行的.jar工作,但使一個.war可執行文件只允許它與一個嵌入式web服務器一起運行......沒有別的。

+0

嗨kares,感謝你的時間....似乎有解決這個問題的方法......就像http://blog.dberg.org/2009/10/run-dbmigrate-in- jruby-without-rails.html ....它只是那些不在我的情況下工作:(....也有其他人也面臨類似的問題...... – azi 2012-03-26 04:57:47

+0

java -jar jruby-complete-1.6。 7.jar - S rake db_migrate [1]給我: 無法從 加載主類清單屬性jruby-complete-1.6.7.jar – azi 2012-03-26 06:37:11