0

我正在使用 JRuby 1.4.0 并想使用 Ruport 制作 CSV 文件。这完美地工作,直到我用warbler从它制作一个战争文件并将它放在服务器上。

当我将以下代码添加到 environment.rb 时,JRuby 抱怨有No such file to load -- 'ruport'

 config.after_initialize do 
    require 'ruport' 
    require 'ruport/acts_as_reportable' 
  end

它在本地完美运行,因为我安装了 ruport 和acts_as_reportable through gem install ...,但现在我想在tomcat服务器上执行它,我听说你可以将它们添加到你的gems文件夹中使用它(这需要安装/配置吗?) .

我还向 warble 添加了所需的具有依赖关系的 gem,在 warble.rb 中添加了以下几行:

config.gems = ["ruport", "acts_as_reportable", "activerecord-oracle_enhanced-adapter", "rails", "rack"]

它仍然给出同样的问题。我发现谷歌搜索的只是你应该添加config.gem 'acts_as_reportable', :lib => 'ruport/acts_as_reportable'到 warble.rb,因为这样需要 AAR gem。问题是我的 JRuby 版本只有 1.4.0 并且抱怨 config.gem 是一个私有方法调用,这似乎只适用于更新版本的 JRuby。

谢谢!

4

1 回答 1

0

Warbler 基于jruby-rack。您可能需要查看 web.xml 文件中的 gem.path 设置。JRuby-Rack Configuration我从下面的 jruby-rack部分复制粘贴了描述。

gem.path: Relative path to the bundled gem repository. Defaults to /WEB-INF/gems.

如果您对 Tomcat 和 webapps 的概念感到满意,您可以按照 jruby-rack 文档在 Tomcat 中运行您的应用程序,只需使用 jruby-rack。

于 2011-07-08T02:45:46.987 回答