0

私の目標: すべての Ruby ソースコードと gem を、war/ear にパッケージ化された jar ファイルに入れること。これが必要なのは、私が働いている組織が、J2EE コンテナーの外部のファイル システムにそれらを配置することを受け入れないためです。

Weblogic 10.3 で JRuby 1.6.7 を使用すると、次のエラーが発生します。「LoadError: ロードするファイルがありません -- active_record」. 私のセットアップでは、jruby-complete をダウンロードして、Web アプリケーションに配置しています。また、これらの指示を使用して、ActiveRecord とそのサポート gem を jruby-gems.jar に追加しました。Web アプリケーションをビルドするときに、war ファイル lib と ear ファイルの META-INF/lib に両方の jar を追加しました。また、ear ファイルの APP-INF/lib フォルダーに追加してみました。まだ LoadError を受信して​​います。

さらに、ここで説明したように、ロードパスに以下を追加しました。私はこれを、先頭のスラッシュの有無にかかわらず、「クラスパス:」の有無にかかわらず行いました。



    List paths = new ArrayList();
    paths.add("classpath:/ruby");
    paths.add("classpath:/myapp");
    paths.add("classpath:/META-INF/jruby.home/lib/ruby/gems/soart");
    paths.add("classpath:/META-INF/jruby.home/lib/ruby/1.9");
    paths.add("classpath:/META-INF/jruby.home/lib/ruby/site_ruby/1.9");
    paths.add("classpath:/META-INF/jruby.home/lib/ruby/site_ruby/shared");
    paths.add("classpath:/META-INF/jruby.home/lib/ruby/gems/1.9");
    container.setLoadPaths(paths);

すべての単体テストに合格し、jar ファイルが ear および war ファイルに作成されていることを確認しました。単体テストでは、ActiveRecord を使用してデータベースからデータをプルします。

展開サーバーを制御しないため、GEM_PATH および GEM_HOME 環境変数を空の文字列に設定します。すべてのリソースは、戦争/耳の中から来る必要があります。

また、これは Ruby on Rails アプリケーションではなく、現時点で作成することもできません。

アップデート

gem ファイルを jruby-complete.jar に配置しようとしましたが、成功しませんでした。

4

1 に答える 1

0

Active Record ライブラリが不足している可能性があります。可能であれば、経由でインストールしてみてください

sudo gem install activerecord 
于 2012-12-03T21:49:26.583 に答える