我的目標是:將所有Ruby源代碼和gems放在與war/ear打包在一起的jar文件中。這是必需的,因爲我工作的組織不會接受將它們放置在J2EE容器之外的文件系統上。JRuby 1.6.7 Weblogic 10.3 LoadError:無需加載這樣的文件--active_record
在Weblogic 10.3上使用JRuby 1.6.7我收到以下錯誤。 「LoadError:沒有這樣的文件加載 - active_record」。我的設置是我已經下載了jruby-complete並將它放置在我的Web應用程序中。我還使用These directions將ActiveRecord及其支持的寶石添加到jruby-gems.jar中。當我構建我的Web應用程序時,我將兩個jar添加到war文件庫中,並添加到ear文件中的META-INF/lib。我也嘗試將它們添加到ear文件的APP-INF/lib文件夾中。仍然收到LoadError。
此外,我加入以下內容到我的加載路徑中,如討論here。我這樣做有和沒有前開始削減,並與和withouth的的「類路徑:」
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文件使它成爲耳朵和戰爭文件。單元測試使用ActiveRecord從數據庫中提取數據。
因爲我不會控制我的部署服務器,所以我將GEM_PATH和GEM_HOME環境變量設置爲空字符串。所有的資源都需要來自戰爭/耳內。
另外值得一提的是,這不是一個Ruby on Rails應用程序,我現在也無法做到這一點。
更新
試圖將寶石文件JRuby的complete.jar沒有成功。