問題タブ [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-on-rails - JRubyを使用したラックの初期化でエラーが発生しました
warblerでビルドされたアプリケーションでJBossを起動すると、次のエラーが発生します。
コールスタック:
何か案は?
jruby - Warbler とダウングレードされた JRuby-Rack を使用している場合、サードパーティの JAR の読み込みに問題がありますか?
アプリケーションを JBoss にデプロイするために Warbler を使用しています。サーバーは正常に起動しているように見えますが、リクエストがアプリケーションに送信されると、次のエラーが発生します。
ご覧のとおり、user.rb クラスで使用している Java ライブラリである mylib.jar をロードしようとすると、クラッシュするようです。mylib.jar ファイルが myapp/lib ディレクトリに存在することと、それが Warbler によって正常にパッケージ化されること (WEB-INF/lib/mylib.jar にあります) を 3 倍にチェックしました。
注意: JRuby-Rack を 1.0.10 にダウングレードしたのは、ここで詳しく説明されている問題 ( NoMethodError: relative_url_root when deploying rails app on tomcat ) に遭遇した後です。それで、おそらく問題はこれと関係がありますか?
何が起こっているのか途方に暮れています。何か案は?
役立つと思われるその他の詳細:
Gemfile:
config/warble.rb:
アプリ/モデル/user.rb:
フル バック トレース:
「宝石リスト」の出力:
tomcat - Tomcat での Rails の初期化中に、グローバルに名前空間が設定された CONSTANT を作成するにはどうすればよいですか?
最初の背景: Rails 2.2.2 アプリにはあらゆる種類のジャンクな依存関係とカスタマイズが含まれているため、当面 2.2.2 からアップグレードすることはできません。現在の計画は、このアプリを JRuby (1.6.5) に移行し、Tomcat (6.0.23 — この特定のバージョン FWIW にはまだ関連付けられていません) で warbler (1.3.2) を使用してパッケージ化することです。
アプリのJRubyブランチがバニラアプリから大幅に逸脱しないようにしたい.ランタイム環境の不一致によって引き起こされたすべての問題を解きほぐし、修正するのにどれくらいの時間がかかるかわからない. そのため、バニラ アプリから進行中の作業をクリーンかつ簡単にマージし続けられるようにしたいと考えています。
アプリのカスタマイズされた動作の多くは、ファイルに設定されたグローバルに名前空間が設定された CONSTANT を使用して構成できenvironments/*.rb
ます。ただし、これらの値は、yaml 構成ファイルを使用するか、シェル環境変数を設定することでオーバーライドできます。これは主に、さまざまな開発者がさまざまな設定をカスタマイズする必要がある開発中の柔軟性のためです。このシステムはこれまでのところうまく機能しており、environments/development.rb
ハッキング中のカスタマイズを大幅に制御できる一方で、ファイルは比較的安定して整理されたままになっています。
JRuby に移行しても、このカスタマイズ システムを維持したいと考えています。config/web.xml.erb
これまでのところ、関連する環境変数と設定を yaml ファイルからフラグメントに変換するカスタマイズを使用しています。これにより、初期化中にJNDI コンテキスト<env-entry>
を介してそれらを使用できるようになります。java:comp/env
より制限された環境 (ステージングや本番環境など) では、これらの設定の多くは、属性が に設定さ<Environment>
れたコンテナーのcontext.xml
ファイルに対応する設定を含めることでロックダウンできます。override
false
ここまでは順調ですね。しかし今、初期化中に JNDI コンテキストから取得した値をグローバル名前空間 CONSTANT に変換するのに苦労しています。関連するビットの抜粋を次に示します。
構成/環境/developer.rb:
lib/config_helper.rb:
web.xml:
catalina.out:
もちろん、この最後の行は「FOO is now 'bar'」になると予想しています。の 14 行目でlib/config_helper.rb
問題が発生しているようです。同様のコードはバニラ ルビーでは問題なく動作しましたが、ここでは Tomcat での初期化中には動作しません。
では、Tomcat での Rails の初期化中に、JNDI 環境エントリからグローバルに名前空間を持つ CONSTANT を作成するにはどうすればよいでしょうか?
ruby - JrubyWarblerがTomcatforSinatraで戦争を生成しました-ファイルが見つかりません
Warblerを使用してTomcatにデプロイするために生成しているWARで次の問題が発生しています。'rake war'を実行すると、デプロイするwarファイルが正しく生成されます。ただし、Tomcatにデプロイしてアプリケーションベースに移動すると、次のメッセージが表示されます。
Errno :: ENOENT at / micro_reg_90day / loginそのようなファイルまたはディレクトリはありません-jndi:/localhost/micro_reg_90day/WEB-INF/views/login.erbファイル:RubyFile.java場所:初期化行:464
ブラウザ内。奇妙なことに、ファイルシステム内の展開されたwebappに移動すると、webapp / WEB-INF/viewsディレクトリ内にこれが表示されます。
ご覧のとおり、login.erbファイルはwarにパッケージ化されています。ただし、JRubyが電話をかけようとしても見つからない
Sinatraアプリ内。以下は私のconfig/warbler.rbです。
私が気付いている唯一のことは、Tomcatが私に言っているパスが見つからないということは、接頭辞jndiが付いていることです:-これは、warblerが.erbファイルを戦争内のある種の名前付きリソースとしてパッケージ化することを想定していることを示しますか?
助けてくれてありがとう!
tomcat - jruby-rack サーブレット コンテナは PUT/DELETE をサポートしていますか?
Warbler を使用して Rails アプリを WAR としてデプロイしようとしています。Tomcat 6 で実行していますが、問題なく動作しているようです。ただし、私のすべてのPUT
リクエストDELETE
は で拒否されてい403 (Forbidden)
ます。
私が収集できたものから、Debian/Ubuntu のデフォルトの Tomcat インストールでは、次の方法でこれらのメソッドが無効になっています。
これをサイコロに設定しようとしfalse
ました/etc/tomcat6/web.xml
が、サイコロはありません。jruby-rack
私の WAR で Warbler によってパッケージ化されたサーブレット コンテナーと同様のことをしなければならないのだろうか? もしそうなら、どうすればいいですか?
そうでない場合、Tomcat がRails アプリに送信されるすべてPUT
の およびを拒否するのはなぜですか?DELETE
ruby - Warbler 1.3.2 が Gemfile の依存関係を認識しない
ウグイスは、依存する宝石をインストールするためにバンドラーを使用していないようです。このスタック トレースは、依存関係にあり、アプリケーションの Gemfile に基づいて Gemfile.lock で自動指定されているすべての gem に表示されます。これは私のwarble.rbです
使用 1. RubyGems 1.7.2 以降 1.8.17 などはバンドラーをバンドルしない 2. JRuby 1.6.7 (デプロイ用) 3. Ruby-1.9.3-p125 (ローカル開発用) 4. Padrino 0.10.5 5.ウグイス 1.3.2 6. rbenv 7. Mac OSX
ウグイスに依存する宝石が含まれない理由と、Gemfile (Gemfile.lock ではない) で各依存関係を明示的に指定する必要がある理由を考えてください。
padrino - Rack::Handler:Module の Padrino & Trinidad 未定義メソッド「登録」
トリニダードで sample_blog アプリケーション Padrino フレームワーク ベースのアプリケーションを実行しようとすると、奇妙なエラーがスローされる
Rack::Handler:Module の未定義メソッド「register」
使用: trinidad-1.3.4 jruby-rack-1.1.4
以下はスタックトレースです
ruby-on-rails-3 - JRuby とウグイスで .war をビルドする
私は何時間もの間、実際に機能する戦争としてパッケージ化された JRuby Rails アプリケーションを取得しようとしましたが、成功しませんでした... (JRuby 1.6.7、warbler 1.3.5、Rails 3.2.2)
問題 #1: Warbler は、元のサブディレクトリを尊重するのではなく、すべてのライブラリを 1 つのルート フォルダーにまとめることを好むようです。たとえば、Rails アプリ自体は正常に動作しますが、ライブラリが次のように参照されると戦争が中断されます。
foo/bar.jar と baz.rb は実際には WEB-INF/lib に存在することに注意してください。Warbler を構成して接続する方法がわからないので、正しく動作する必要があります。
問題 #2: すべての要件を変更することを諦めた場合
、実行可能な war ファイルをビルドすればすべて問題ありませんが、war を Tomcat 6.0.20 インストールにドロップしようとすると、アプリケーションの初期化に失敗します。
問題が何であるかを明らかにするグーグルの量はありません。おそらく、戦争には何かが欠けているか、何らかの形で設定が間違っていると思われますが、それは何ですか?
ruby-on-rails - JRuby スレッドを実行する依存関係の問題
Rails 3.0.2 で JRuby 1.6.7 を実行しています。REST サービスを呼び出すメソッドがいくつかあります。
それらを同時に実行するといいので、それぞれが戻るのに 2 秒かかるのではなく、合計 6 秒かかります。2秒ほどでデータが戻ってきます。
次の呼び出しはブロッキング io を使用し、変更できないため、ファイバーを使用できません。プリエンプティブ スレッドを使用しようとしています。
次のように、スレッド内で簡単な呼び出しを行います。
このコードがスレッド内で実行されると、次のエラーが発生しますが。新しいスレッドにあるため、正しいファイル/クラスを見つけることができないと思いますか? 何か案は?
/home/joe/ruby/analysis/app/models/dashboard/reports.rb で Dashboard::Reports を定義する必要がある Rails.root: /home/joe/ruby/analysis
ruby - JRubyラックを備えた複数のwarWebアプリケーション
Warblerにバンドルされている2つのJRubySinatraWebアプリ(ランタイム1.9)をearファイルにパックしようとしています。Glassfish(2.1.1または3.1)にデプロイした後、クラッシュしました。
JRuby.jar、jruby-stdlib.jar、およびjruby-rack.jarは、両方のアプリケーションのクラスパスでアクセス可能であり、どちらか一方だけを残すと、両方が正しくデプロイされます。しかし、2つ残しておくと、ラックの起動中にエラーが発生したため、展開中に2つ目が常にクラッシュします。
エラーに基づくと、私が理解できない理由で2番目のアプリケーションは1.8rubygemsを使用しているように見えます。
私のコードなどには「rubygems」は必要ありません。
私のgemfile.lockは
よろしくお願いします。