0

我的目标:将所有 Ruby 源代码和 gem 放在与 war/ear 一起打包的 jar 文件中。这是必需的,因为我工作的组织不接受将它们放在 J2EE 容器之外的文件系统上。

在 Weblogic 10.3 上使用 JRuby 1.6.7 我收到以下错误。“LoadError:没有要加载的文件——active_record”。我的设置是我已经下载了 jruby-complete 并将它放在我的网络应用程序中。我还使用这些方向将 ActiveRecord 及其支持的 gem 添加到 jruby-gems.jar 中。当我构建我的 web 应用程序时,我将两个 jar 添加到了 war 文件库和 ear 文件中的 META-INF/lib。我还尝试将它们添加到 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 回答