节俭宝石和JRuby

时间:2010-09-14 20:13:48

标签: rubygems jruby thrift

我最近刚刚在MRI中使用了JRuby和Thrift宝石。我遇到了一个问题,如果我需要'thrift',我会收到消息“无法加载thrift_native扩展。默认为纯Ruby库。”如果我然后尝试并且需要在ruby中生成的代码thrift,我将收到此错误:“NameError:uninitialized constant Thrift :: Struct_Union”

节俭的宝石目前不与JRuby合作吗?

除了使用gem之外,我还能做些什么来使用JRuby的thrift吗?

编辑:在我的Mac上挖掘后,我发现MRI宝石和JRuby宝石是不同的,即使宝石是相同的版本(0.2.0.4)。现在这似乎是一个可怕的想法,但是如果你将MRI gem中的.rb文件复制到JRuby gem中并将require 'thrift/struct_union'添加到thrift.rb中,你将不会再获得与Thrift gem相关的任何错误,除了它找不到thirft_native并将使用纯Ruby库。这可以解释,因为thrift_native是针对C而不是Java。

1 个答案:

答案 0 :(得分:1)

当你已经使用JRuby时,我将使用Java本机thrift客户端。对我来说,thrift是首先迁移到JRuby的原因,因为Ruby的实现速度很慢而且有错误。