DirectJRubyEmbedding无法加载OpenSSL

时间:2013-01-12 04:19:50

标签: openssl jruby

我尝试使用DirectJRubyEmbedding为我的应用程序设置Java-to-Ruby API调用。要加载的一个必需的ruby模块是active_support。然后加载' securerandom'然后加载' openssl'

在openssl中,digest.rb对此有所了解。

尝试使用OpenSSL gem会导致以下错误:

未初始化的常量OpenSSL :: Digest :: OPENSSL_VERSION_NUMBER

at org.jruby.RubyModule.const_missing(org / jruby / RubyModule.java:2677) 在RUBY.Digest(/Users/v/.rvm/gems/ruby-1.9.3-p125/gems/jruby-openssl-0.8.2/lib/1.9/openssl/digest.rb:24) 在RUBY.OpenSSL(/Users/v/.rvm/gems/ruby-1.9.3-p125/gems/jruby-openssl-0.8.2/lib/1.9/openssl/digest.rb:22) 在RUBY。(root)(/ Users / v / .rvm / gems / ruby​​-1.9.3-p125 / gems / jruby-openssl-0.8.2 / lib / 1.9 / openssl / digest.rb:21) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / gems / ruby​​-1.9.3-p125 / gems / jruby-openssl-0.8.2 / lib / 1.9 / openssl.rb:1) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / gems / ruby​​-1.9.3-p125 / gems / jruby-openssl-0.8.2 / lib / 1.9 / openssl.rb:20) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / rubies / jruby-1.6.7.2 / lib / ruby​​ / 1.9 / securerandom.rb:1) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / rubies / jruby-1.6.7.2 / lib / ruby​​ / 1.9 / securerandom.rb:37) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / gems / ruby​​-1.9.3-p125 / gems / activesupport-3.2.9 / lib / active_support.rb:1) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / gems / ruby​​-1.9.3-p125 / gems / activesupport-3.2.9 / lib / active_support.rb:24) 在org.jruby.RubyKernel.require(org / jruby / RubyKernel.java:1027) 在RUBY。(root)(/ Users / v / .rvm / gems / ruby​​-1.9.3-p125 / gems / activesupport-3.2.9 / lib / active_support / all.rb:1)

我正在使用带有openssl 0.8.2的Ruby 1.9.3-p125,如下面的gem负载所示。

.rvm /宝石/红宝石1.9.3-P125 /宝石/ JRuby的OpenSSL的-0.8.2 / lib中/ 1.9

我注意到jirb显示:

1.9.3-p125:004> OpenSSL的:: OPENSSL_VERSION_NUMBER => 9469999

因此,看起来JRuby.jar中的java编译类在OpenSSL模块中定义它,但.rb文件中的代码无法找到它。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

正如我在https://github.com/jruby/jruby/issues/493中提到的,您应该考虑使用RedBridge而不是DirectJRubyEmbedding