問題タブ [jruby-rack]
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 - JRuby-Rack Sinatra Warbler Projectのアーチタイプはありますか?
必要なすべての依存関係をすべて備えたWARデプロイメントファイルを作成するjruby+Rack + Sinatraプロジェクトのプロジェクトアーキタイプ(またはrubyコミュニティが呼んでいるもの)はありますか?
私が欲しいのは、ant/rakeスクリプトと基本的なディレクトリ階層がすべてすぐに使える状態ですぐに使えるプロジェクトを作成する「railsappname」に相当するものです。
そのような獣は存在しますか?
jruby - warblerを使用してjruby-jarsとjruby-rackをクラスパスに追加するにはどうすればよいですか?
私はwarblerのソースコードを読んでいますが、jruby-jarsとjruby-rack jarsがどのようにサーブレットクラスパスに到達するのか理解できませんか?
ウグイスはそれらをコピーしているようですweb-inf/gems/gems/<gemname>/lib/<jarname>.jar
が、クラスパスにはありません。
それらをrubyアプリのlib/フォルダーに入れると、web-inf / libにコピーされ、すべてがうまくいくと思いますが、warファイルにjarのコピーが2つあるのは奇妙に思えます。それは私がやろうとしていることですか?
ベン
ruby-on-rails - Rails が jruby-rack で tomcat にデプロイされたときに production.log が開かないようにする
jruby-rack を使用して、Ruby on Rails アプリケーションを tomcat アプリケーション サーバーにデプロイする必要があります。セキュリティ上の理由により、私の顧客は webapps ディレクトリを読み取り専用でマウントしており、これを変更しません。発生する問題は、Rails ロガーが WEB-INF/log/production.log を書き込みモードで開きたいということです。log4j とその仲間が構成されて動作しているため、彼はこのファイルに何も書き込みませんが、Rails はファイルが読み取れないと文句を言います。
レールがこのファイルを開くのを防ぐための提案はありますか?
jruby - JRuby on Rails アプリと JBoss 4.2.0/Tomcat 5.5
私の JRuby on rails アプリは Tomcat 6.0 で正常に動作しますが、JBoss 4.2.0/Tomcat 5.5 (サーブレット API 2.4) である会社の webfarm に展開すると、次のスタック トレースで失敗します。
その後:
ありがとう、アルカディ
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ファイルにログ情報が記録されました。
したがって、大きな問題は次のとおりです。
なんてこと?
ロギングは機能しているように見えますが、私が行ったことが正しいかどうかは本当にわかりません。前に言ったように、私は多かれ少なかれ何らかの検証を実際に探しています。ポインタ/ヒント/アドバイスがあればよろしくお願いします。ありがとう!
jruby - tomcat 内の jruby/rack 内で jruby を使用する場合、jruby の --fast モードを設定する方法/場所は?
tomcat 内の jruby/rack 内で jruby を使用する場合、jruby の --fast モードを設定する方法/場所は?
この --fast モードは、このページで説明されています jruby パフォーマンス チューニング
ruby - JRuby-Rackとは?
Rack and Thin を使用して Ruby で記述された既存の Web アプリケーションがあります。これをJRubyに移植して、いくつかのJavaライブラリとインターフェースできるようにする必要があります。Google はこのページを教えてくれました: https://github.com/jruby/jruby/wiki/JRuby_Rack
このJRuby-Rackとは何ですか? Ruby について理解できるほどの知識はなく、チュートリアルもないようです。私はさえずりとは何かを知りません。私が見た唯一の例は、私が使用していないレールに関するものです。
痛みの少ない方法があれば教えてください。
jruby - jruby-rack/tomcat 内で実行されている jruby の --profile.api オプションを設定する方法/場所は?
--profile.api
jruby-rack/tomcat内で実行されているjrubyのオプションを設定する方法/場所は?
このオプションは、コード ブロックのプロファイリング方法に記載されています。
jruby - JRuby Rack - サーブレットフィルターを追加するには?
JRuby Rack - Rails アプリケーションの応答をフィルターに渡して処理させようとしています (成功しませんでした)。基本的に、Orbeon XForm Engine を使用して、Rails アプリケーションからの XHTML 出力を強化したいと考えています。JRuby Rack の代わりに単純な Java サーブレットを使用すると、すべてがスムーズに機能します。
web.xml ファイルは次のとおりです。
前もってありがとう
サンドロ。
logging - JRuby on Rails のログ ローテーション エラー
デフォルトのRailsロガーを使用して、TomcatにデプロイされたJRuby on Rails 2アプリケーションがあります。DST の境界を越えてしばらくすると、ログに次のエラー メッセージが表示され、アプリケーションが停止していることがわかりました。
通常、ログは深夜にローテーションされます。前日のログの最終タイムスタンプは常に 23:59 ですが、 11 月 6 日のログのタイムスタンプは 22:59 です。
そのため、真夜中ではなく午後 11 時にログのロールオーバーが試行されました。次に、新しい日のログを作成しようとしたときに、同じ日付を使用していました。
構成に問題があるか、ログ ローテーションのタイミング ロジックにバグがあるようです。
以下は、environment.rb の関連セクションです。
「UTC」の config.time_zone 設定は ActiveRecord 用だと思いますが、それが原因なのかなと思います。
私の質問は次のとおりです。何が問題なのですか? また、ログ ローテーションのタイミング ロジックはどこにありますか? それは Rails、Jruby-Rack、または基礎となるロギング メカニズムにありますか?