問題タブ [jrubyonrails]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
283 参照

ruby-on-rails - jRuby/Glassfish がインストールされた gem を認識しない (Rails アプリケーション)

jRuby を使用して Rails アプリケーションを起動しようとすると、すでにインストールされている Rails 2.3.8 をインストールする必要があると表示されます。これらは私が使用したコマンドとそのエラーです:

アプリケーションの起動を試みます:

[root@node app]# /opt/jruby-1.5.2/bin/jruby -S /opt/jruby-1.5.2/bin/glassfish -p 3001
開発環境で GlassFish サーバーを 0.0.0.0:3001 で起動します。 ..
ログ メッセージを /opt/app/log/development.log に書き込みます。
Ctrl+C を押して停止します。

Rails 2.3.8 gem がありません。config/environment.rb のRAILS_GEM_VERSIONgem install -v=2.3.8 rails設定をインストール済みの Rails バージョンに更新するか、RAILS_GEM_VERSION をコメントアウトしてインストール済みの最新バージョンを使用してください。

地元の宝石:

[root@node アプリ]# /opt/jruby-1.5.2/bin/jruby -S gem リスト

その他の関連情報:

0 投票する
2 に答える
2839 参照

log4j - Rails 3 アプリケーションの tomcat jruby-rack で log4j を使用してログを記録する

RailsアプリケーションのログをLog4jで取得するために、3時間の大半を費やしました。ようやく機能するようになりましたが、自分がしたことが正しいかどうかはわかりません。最後の試みまで、さまざまな方法を試しましたが、役に立ちませんでした。だから私は本当にここでいくつかの検証を探しています.おそらくいくつかのポインタとヒントも同様です-正直に言って何でもありがたいです. 以下の 3 つの試みに、すべての私の弱い方法をまとめました。それぞれの試行でどこが間違っていたのかについての啓蒙を期待しています-たとえそれが私が引き裂かれることを意味するとしても.

事前に助けてくれてありがとう!

システム仕様

  • レール3.0
  • Windows Server 2008
  • Log4j 1.2
  • トマクト 6.0.29
  • Java 6

試行 1 - Log4J を使用するように Tomcat を構成

私は基本的に Apache Tomcat のウェブサイトhereのガイドに従いました。手順は次のとおりです。

  1. log4j.propertiesでファイルを作成します。$CATALINA_HOME/lib
  2. をダウンロードしてコピーしlog4j-x.y.z.jarます$CATALINA_HOME/lib
  3. Apache Tomcat Extras フォルダーの に$CATALINA_HOME/bin/tomcat-juli.jar置き換えますtomcat-juli.jar
  4. tomcat-juli-adapters.jarApache Tomcat Extras フォルダーからコピーします。$CATALINA_HOME/lib
  5. 消去$CATALINA_BASE/conf/logging.properties
  6. Tomcat の起動 (サービスとして)

ガイドに従って期待される結果

フォルダーにtomcat.logファイルが表示されているはずです。$CATALINA_BASE/logs

実績

  • tomcat.log がありません
  • 代わりに3 つの標準ログを 見た
    • jakarta_service_20101231.log
    • stderr_20101231.log
    • stdout_20101231.log

質問

  • 少なくともファイルを見たはずではありませんtomcat.logか?

試行 2 - デフォルトの Tomcat ロギング (commons-logging) を使用する

  1. 以前のセットアップからのすべての変更を元に戻しました
  2. $CATALINA_BASE/conf/logging.properties次のようにして変更しました。

    1. handlers私のアプリケーションの設定を次の行に追加します。5rails3.org.apache.juli.FileHandler
    2. ハンドラ固有のプロパティを追加する

      /li>
    3. 施設固有のプロパティの追加

      /li>
  3. jruby-rack README の Logging セクションに従って、次のコンテキスト パラメータを追加して、 myweb.xmlを変更しました (それに応じて warbler.rb も変更しましたが、web.xmlテストを高速化するために を直接変更することにしました)。

    /li>
  4. Tomcatを再起動しました

結果

  • ログ ファイルが作成されましたが ( rails3.log)、ファイルにログ情報がありませんでした。

試行 2A - 既存のセットアップで Log4j を使用する

web.xml私は、この新しい設定で Log4j をもう一度試してみることにしました。

  1. log4j.jarを自分のWEB-INF/libフォルダにコピーしました
  2. ファイルを作成しlog4j.propertiesて入れましたWEB-INF/classes

    /li>
  3. Tomcatを再起動しました

結果

試行 2 と同じ

注:log4j.logger.javax.servlet=DEBUG jruby-rack README で、すべてのログ出力が自動的にメソッドにリダイレクトされることを読んだので、使用しましたjavax.servlet.ServletContext#log。だから、これで撮れると思ったのですが、明らかに間違っていました。

質問

  1. なぜこれがうまくいかなかったのですか?
  2. Log4J はcommons_loggingAPI を使用していませんか?

試行 3 - slf4j を試してみました (WORKED)

なぜ Attempt 2A が機能しなかったのか、少し不確かですが、おそらく API を使用していないcommons_loggingため、jruby.rack.loggingパラメーターに使用できないのではないかと思いましcommons_loggingた... (しかし、まだ確信が持てませんでした)。slf4jオプションで見ました。聞いたことがなく、好奇心から調べてみることにしました。それについて簡単に読んだ後、私はそれが他のショットと同じくらい良いと思い、ここの指示に従って試してみることにしました.

試行 2A のセットアップから続けます。

  1. コピーslf4j-api-1.6.1.jarslf4j-simple-1.6.1.jarて自分のWEB-INF/libフォルダに
  2. フォルダにもコピーslf4j-log4j12-1.6.1.jarしましたWEB-INF/lib
  3. Tomcatを再起動しました

そしてヴィオラこれで、 rails3.logファイルにログ情報が記録されました。

したがって、大きな問題は次のとおりです。

なんてこと?

ロギングは機能しているように見えますが、私が行ったことが正しいかどうかは本当にわかりません。前に言ったように、私は多かれ少なかれ何らかの検証を実際に探しています。ポインタ/ヒント/アドバイスがあればよろしくお願いします。ありがとう!

0 投票する
3 に答える
2392 参照

ruby-on-rails - jmeterを使用したRailsアプリの負荷テスト

jmeterを使用してRailsアプリの負荷テストを実行しようとしていますが、パスログインを取得していません。

application_controllerで、authenticity_tokenを使用する必要がないようにprotect_from_forgeryをコメントアウトしました。

idex/homeページの応答からのアプリセッションIDCookieがjmeterのhttpcookiemanagerによって保存されていないか、Cookieがjmeter cookie managerによって保存されており、リクエストに渡されていないように見えます。

これは、jmeterからの私の投稿がtomcatアクセスログからどのように見えるかです:

192.168.247.13 [07 / Jan / 2011:11:01:27 -0500] r:200 d:58'POST / dash / account / login HTTP / 1.1' 2088

ブラウザ(Chrome)からログインするための投稿は次のようになります。

192.168.247.13 [07 / Jan / 2011:10:56:51 -0500] r:200 d:112'POST / dash / account / login HTTP / 1.1' 16

何らかの理由で、ブラウザからの投稿が機能し、次のページにリダイレクトされます。JMeterからの投稿は、リダイレクトではなくビュー(login.erb)を返します。CookieマネージャーがセッションCookieを保存していないか、セッションCookieがjmeterによる要求で送信されていないことを示すもう1つの兆候。

jmeterとrailsアプリでこの問題に遭遇した人はいますか?助言がありますか?

よろしくお願いします。

0 投票する
2 に答える
305 参照

ruby-on-rails - Tomcat メモリ プロファイラ

誰かが良いTomcatメモリプロファイラーを提案できますか? (Windows マシンの Tomcat インスタンスにデプロイされた JRuby on Rails アプリのメモリ使用量をプロファイリングしようとしています)。

0 投票する
1 に答える
274 参照

ruby-on-rails - Linux Cron ジョブまたは Rails の任意のジョブ スケジューラ。自動展開に適しているのはどれですか?

どちらのオプションが優れているのか、その理由を知りたいのですが?
* Linux Cron ジョブ
* Rails のバックグラウンド ジョブ スケジューラ。(これでどのプラグインが私を助けてくれるかは、まだ別の質問です!)

アプリケーションが使用する cron ジョブの一部を以下に示します:
-> アプリ サーバーの一時ディレクトリを毎週クリーンアップする 1つの
ジョブ -> 相互に依存するアプリケーション間でデータを同期する 4 つのジョブ

一部の同期ジョブは、データの負荷に応じて不確定な時間がかかります。1 分かかる場合もあれば、2 分かかる場合もあれば、5 分かかる場合もあります。

参考までに - 上記のジョブはすべて Cron ジョブとして現在存在しています。

上記の制約がある場合、デプロイを自動化する場合、バックグラウンド ジョブを実行する最善の方法は何ですか?

0 投票する
3 に答える
5179 参照

ruby-on-rails - 環境変数またはYAML構成ファイル

背景:
ステップ1->特定の構成でテストモードで実行することにより、アプリケーションのユニットテストと機能テストを実行するボックスがあります。
ステップ2->ステップ1が成功したら、別のボックスで、異なる構成セットを使用してテストモードでアプリケーションを実行することにより、アプリケーションの統合テストを実行します。
ステップ3->ステップ2が成功したら、パフォーマンステストボックスで本番モードで実行することにより、アプリケーションのパフォーマンステストを実行します。
ステップ4->ステップ3が成功すると、ビルドは安定していると見なされ、UATボックスはそのコードベースで更新され、アプリケーションは顧客のレビューとフィードバックのために本番モードで実行されます。ステップ5->顧客からのGOを使用して、プロダクションボックスがコードベースで更新されます。

上記の手順から、手順1と2で、アプリケーションがテストモードで実行されている間、構成が異なることがわかります。ステップ3、4、5の場合も同様です。

そのような状況で、推奨される方法は何ですか?YAML構成ファイルを持っていましたが、個人的には、多数の構成ファイルを維持するのは意味がないと感じました。そこで、
「環境ごとの構成ファイル」
から
「レールごとの構成ファイルモード、変数をLinux環境に外部化する」に変更しました。

私は正しい方向に進んでいますか?私の行動は、物事を単純化しませんか?

これら2つのアプローチの長所と短所は何ですか?

0 投票する
2 に答える
724 参照

ruby-on-rails - DBの移行とコールバック[JRuby1.5.2またはRails2.2.3]

背景以下のよう な
Rails移行スクリプトがあり ます 。......0011_update_column1_for_internal_projects.rb
...
... 0022_create_audits.rb



モデルで発生したイベントを追跡するためにAuditsテーブルを更新するInternalProjectモデルのafter_create/update/deleteコールバックを作成しました。

コードスニペット
DB移行スクリプト--0011--のself.upメソッドは次のように定義されています。

副作用
0022スクリプトでは、内部プロジェクトのシードデータをロードするためのテストフィクスチャがあるため、スクリプト0011の移行に失敗する状況に陥りました。これは失敗します。これは、InternalProjectの保存中にコールバックがトリガーされ、DB状態のその瞬間に、0022が実行されていないため、監査テーブルが存在しないため、テーブルが存在しないことを嘆くSQLエラーが発生するためです。 。

私の質問1.InternalProjectの
保存時にコールバックが呼び出されないようにするには、0011 DB移行スクリプトを修正するにはどうすればよいですか?これを行うためのきちんとした方法を知りたいです。
2.そのような更新スクリプトが削除されるのではないかと思います。それは悪い考えですか?DB移行でのデータ操作用のスクリプトが必要ですか?
3. DB移行スクリプトにデータ操作スクリプトを含める必要がありますが、それについて何かできることはありますか?

0 投票する
1 に答える
468 参照

jruby - warbler を使用して Rails アプリケーションを tomcat にデプロイする際の問題 - 未定義のメソッド 'getProperty'

私たちのアプリを hardy のスタンドアロン tomcat 5.5 にデプロイしようとしています。

結果の war ファイルは解凍されますが (正しく見えるように)、読み込まれず、次のエラーが表示されます。

私が使用するバージョン:

サーバー上:

助けてくれてありがとう!クリス

0 投票する
5 に答える
3210 参照

windows - Vagrant は x64-Windows7 上の VirtualBox を認識しません (すでに JRuby を実行しています)

64 ビットの Windows 7 マシンで Vagrant を起動して実行しようとしていますが、「Vagrant は VirtualBox を検出できませんでした!」というエラーが継続的に発生します。ここに私がインストールしたものがあります:

  • JRE 6.0.230.25 x64
  • JRuby 1.6.0.0
  • ルビー 1.8.7.330 (Windows)
  • バーチャルボックス 3.2.12
  • Vagrant の現在のバージョン (2011 年 1 月 18 日現在)

次のようなコマンドを試すたびに、同じエラーが発生します

そして今、私はちょっと頭がおかしいです。助言がありますか?

(そして、しばらくこれに取り組んだ後、Windows バージョンの Ruby のみをインストールしました。JRuby と Ruby を同じマシンにインストールすることで、他の競合が発生する可能性があるかどうかはわかりませんが、インストールの前後にこのエラーが発生します。)

助けてくれてありがとう。

0 投票する
1 に答える
463 参照

jruby - tomcat 内の jruby/rack 内で jruby を使用する場合、jruby の --fast モードを設定する方法/場所は?

tomcat 内の jruby/rack 内で jruby を使用する場合、jruby の --fast モードを設定する方法/場所は?

この --fast モードは、このページで説明されています jruby パフォーマンス チューニング