【问题标题】:JRuby OpenSSL ErrorJRuby OpenSSL 错误
【发布时间】:2011-03-16 18:15:07
【问题描述】:

我在配置 JRuby 以与 OpenSSL 一起正常工作时遇到问题。谷歌搜索显示这是一个很常见的情况,但我读过的解决方案都没有为我工作。这是我的设置:

  • Ubuntu 9.10
  • jruby 1.5.1
  • jruby-openssl (0.7)

这是错误:

irb(main):001:0> require 'jruby/openssl/gem_only'
=> true
irb(main):002:0> require 'openssl'
=> true
irb(main):003:0> OpenSSL::Digest::OPENSSL_VERSION_NUMBER
NameError: uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER

有趣的是,即使我没有安装 jruby-openssl gem,require 'openssl' 也会返回 true。根据this link,这不应该发生吗?

尝试使用 require 'rubygems'gem 'jruby-openssl' 显式加载 gem 没有帮助。

【问题讨论】:

  • 我也有类似的设置。 (X)ubuntu 10.04 (x64), jruby 1.4.0, jruby-openssl 0.7

标签: rubygems openssl jruby


【解决方案1】:

您确定您正在查看正确的常量吗?

$ ruby -v -r openssl -e 'p OpenSSL::Digest::OPENSSL_VERSION_NUMBER'
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
-e:1: uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER (NameError)

$ ruby -v -r openssl -e 'p OpenSSL::OPENSSL_VERSION_NUMBER'
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
9470159

$ jruby -v -r openssl -e 'p OpenSSL::OPENSSL_VERSION_NUMBER'
jruby 1.5.1 (ruby 1.8.7 patchlevel 249) (2010-06-06 f3a3480) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_20) [x86_64-java]
9469999

【讨论】:

  • 好吧,这很有趣。但在我的情况下,错误来自 gem,所以我假设至少在某个时候这是正确的常数。
  • @Matthew 实际上,我们从同一个 gem (Redcar) 中得到了这个错误。有一个错误导致我出现此错误。修复该错误后,我删除了 .redcar 文件夹,然后重新安装,一切都很好,所以也许你应该试一试。
  • @dbyrne:是的,它也为我修好了。尽管如此,仍然对修复本身感到好奇。看看我能不能让丹在这里发帖。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
相关资源
最近更新 更多