如何使用Warbler为JRuby包含ruport / acts_as_reportable gems?

时间:2011-07-07 08:41:18

标签: ruby-on-rails jruby jrubyonrails warbler ruport

我正在使用JRuby 1.4.0并希望使用Ruport来制作CSV文件。这完全有效,直到我用warbler制作一个war文件将它放在服务器上。

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

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

它本地完美,因为我通过gem install ...安装了ruport和acts_as_reportable,但现在我想在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。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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