問題タブ [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.
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_VERSION
gem install -v=2.3.8 rails
設定をインストール済みの Rails バージョンに更新するか、RAILS_GEM_VERSION をコメントアウトしてインストール済みの最新バージョンを使用してください。
地元の宝石:
[root@node アプリ]# /opt/jruby-1.5.2/bin/jruby -S gem リスト
その他の関連情報:
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のガイドに従いました。手順は次のとおりです。
log4j.properties
でファイルを作成します。$CATALINA_HOME/lib
- をダウンロードしてコピーし
log4j-x.y.z.jar
ます$CATALINA_HOME/lib
- Apache Tomcat Extras フォルダーの に
$CATALINA_HOME/bin/tomcat-juli.jar
置き換えますtomcat-juli.jar
tomcat-juli-adapters.jar
Apache Tomcat Extras フォルダーからコピーします。$CATALINA_HOME/lib
- 消去
$CATALINA_BASE/conf/logging.properties
- 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) を使用する
- 以前のセットアップからのすべての変更を元に戻しました
$CATALINA_BASE/conf/logging.properties
次のようにして変更しました。handlers
私のアプリケーションの設定を次の行に追加します。5rails3.org.apache.juli.FileHandler
ハンドラ固有のプロパティを追加する
/li>施設固有のプロパティの追加
/li>
jruby-rack README の Logging セクションに従って、次のコンテキスト パラメータを追加して、 my
/li>web.xml
を変更しました (それに応じて warbler.rb も変更しましたが、web.xml
テストを高速化するために を直接変更することにしました)。Tomcatを再起動しました
結果
- ログ ファイルが作成されましたが (
rails3.log
)、ファイルにログ情報がありませんでした。
試行 2A - 既存のセットアップで Log4j を使用する
web.xml
私は、この新しい設定で Log4j をもう一度試してみることにしました。
log4j.jar
を自分のWEB-INF/lib
フォルダにコピーしましたファイルを作成し
/li>log4j.properties
て入れましたWEB-INF/classes
Tomcatを再起動しました
結果
試行 2 と同じ
注:log4j.logger.javax.servlet=DEBUG
jruby-rack README で、すべてのログ出力が自動的にメソッドにリダイレクトされることを読んだので、使用しましたjavax.servlet.ServletContext#log
。だから、これで撮れると思ったのですが、明らかに間違っていました。
質問
- なぜこれがうまくいかなかったのですか?
- Log4J は
commons_logging
API を使用していませんか?
試行 3 - slf4j を試してみました (WORKED)
なぜ Attempt 2A が機能しなかったのか、少し不確かですが、おそらく API を使用していないcommons_logging
ため、jruby.rack.logging
パラメーターに使用できないのではないかと思いましcommons_logging
た... (しかし、まだ確信が持てませんでした)。slf4j
オプションで見ました。聞いたことがなく、好奇心から調べてみることにしました。それについて簡単に読んだ後、私はそれが他のショットと同じくらい良いと思い、ここの指示に従って試してみることにしました.
試行 2A のセットアップから続けます。
- コピー
slf4j-api-1.6.1.jar
しslf4j-simple-1.6.1.jar
て自分のWEB-INF/lib
フォルダに - フォルダにもコピー
slf4j-log4j12-1.6.1.jar
しましたWEB-INF/lib
- Tomcatを再起動しました
そしてヴィオラ!これで、 rails3.logファイルにログ情報が記録されました。
したがって、大きな問題は次のとおりです。
なんてこと?
ロギングは機能しているように見えますが、私が行ったことが正しいかどうかは本当にわかりません。前に言ったように、私は多かれ少なかれ何らかの検証を実際に探しています。ポインタ/ヒント/アドバイスがあればよろしくお願いします。ありがとう!
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アプリでこの問題に遭遇した人はいますか?助言がありますか?
よろしくお願いします。
ruby-on-rails - Tomcat メモリ プロファイラ
誰かが良いTomcatメモリプロファイラーを提案できますか? (Windows マシンの Tomcat インスタンスにデプロイされた JRuby on Rails アプリのメモリ使用量をプロファイリングしようとしています)。
ruby-on-rails - Linux Cron ジョブまたは Rails の任意のジョブ スケジューラ。自動展開に適しているのはどれですか?
どちらのオプションが優れているのか、その理由を知りたいのですが?
* Linux Cron ジョブ
* Rails のバックグラウンド ジョブ スケジューラ。(これでどのプラグインが私を助けてくれるかは、まだ別の質問です!)
アプリケーションが使用する cron ジョブの一部を以下に示します:
-> アプリ サーバーの一時ディレクトリを毎週クリーンアップする 1つの
ジョブ -> 相互に依存するアプリケーション間でデータを同期する 4 つのジョブ
一部の同期ジョブは、データの負荷に応じて不確定な時間がかかります。1 分かかる場合もあれば、2 分かかる場合もあれば、5 分かかる場合もあります。
参考までに - 上記のジョブはすべて Cron ジョブとして現在存在しています。
上記の制約がある場合、デプロイを自動化する場合、バックグラウンド ジョブを実行する最善の方法は何ですか?
ruby-on-rails - 環境変数またはYAML構成ファイル
背景:
ステップ1->特定の構成でテストモードで実行することにより、アプリケーションのユニットテストと機能テストを実行するボックスがあります。
ステップ2->ステップ1が成功したら、別のボックスで、異なる構成セットを使用してテストモードでアプリケーションを実行することにより、アプリケーションの統合テストを実行します。
ステップ3->ステップ2が成功したら、パフォーマンステストボックスで本番モードで実行することにより、アプリケーションのパフォーマンステストを実行します。
ステップ4->ステップ3が成功すると、ビルドは安定していると見なされ、UATボックスはそのコードベースで更新され、アプリケーションは顧客のレビューとフィードバックのために本番モードで実行されます。ステップ5->顧客からのGOを使用して、プロダクションボックスがコードベースで更新されます。
上記の手順から、手順1と2で、アプリケーションがテストモードで実行されている間、構成が異なることがわかります。ステップ3、4、5の場合も同様です。
そのような状況で、推奨される方法は何ですか?YAML構成ファイルを持っていましたが、個人的には、多数の構成ファイルを維持するのは意味がないと感じました。そこで、
「環境ごとの構成ファイル」
から
「レールごとの構成ファイルモード、変数をLinux環境に外部化する」に変更しました。
私は正しい方向に進んでいますか?私の行動は、物事を単純化しませんか?
これら2つのアプローチの長所と短所は何ですか?
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移行スクリプトにデータ操作スクリプトを含める必要がありますが、それについて何かできることはありますか?
jruby - warbler を使用して Rails アプリケーションを tomcat にデプロイする際の問題 - 未定義のメソッド 'getProperty'
私たちのアプリを hardy のスタンドアロン tomcat 5.5 にデプロイしようとしています。
結果の war ファイルは解凍されますが (正しく見えるように)、読み込まれず、次のエラーが表示されます。
私が使用するバージョン:
サーバー上:
助けてくれてありがとう!クリス
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 を同じマシンにインストールすることで、他の競合が発生する可能性があるかどうかはわかりませんが、インストールの前後にこのエラーが発生します。)
助けてくれてありがとう。
jruby - tomcat 内の jruby/rack 内で jruby を使用する場合、jruby の --fast モードを設定する方法/場所は?
tomcat 内の jruby/rack 内で jruby を使用する場合、jruby の --fast モードを設定する方法/場所は?
この --fast モードは、このページで説明されています jruby パフォーマンス チューニング