0

私のコードベースは当初、ルビーで書かれていました。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

どんな助けでもありがたいです

-ありがとう

4

2 に答える 2

0

これは warbler ではまだサポートされていないようです - jruby スタイルのコマンドを実行すると、実行可能な .jar で動作しますが、.war 実行可能ファイルを作成すると、組み込み Web サーバーでのみ実行できます...他には何もありません。

于 2012-03-23T20:23:08.177 に答える
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タスク内でsequel、loggerなどのgemを使用していたためです....マシンにはインストールされていますが、本番マシンにはインストールされていません....これらのgemを本番環境にインストールすることはオプションではありませんでした.... 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ファイルをどこに置いても、warblerは常にこれをlibディレクトリに送信しますが、元の場所にダミーのjarファイルが表示されます...うまくいけば、解決策は少しきれいになると思いますこれを試したことはありませんが、いくつかの方法で....

i>上記のブログに記載されているように、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] 

動作するはずです

于 2012-04-02T19:26:32.513 に答える