0

JRuby、Open URI、およびJRuby-OSSLを使用して作成しようとしている非常に単純なプログラムに問題があります。

以下を使用してJRuby-OSSL gemをインストールしました。

gem install jruby-openssl

最新の jruby-complete jar (1.6.7) をダウンロードしました。

簡単なスクリプトtest.rbがあります:

require 'jruby/openssl/gem_only'
require 'open-uri'
open('https://google.com')

そして、次のように実行すると:

java -jar jruby-complete-1.6.7.jar test.rb

私は得る:

NameError: uninitialized constant Net::HTTP::OpenSSL
  const_missing at org/jruby/RubyModule.java:2642
       use_ssl= at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/net/https.rb:124
      open_http at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:231
    buffer_open at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:616
      open_loop at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:164
          catch at org/jruby/RubyKernel.java:1183
      open_loop at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:162
       open_uri at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:132
           open at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:518
           open at file:/Users/mislocin/.m2/repository/org/jruby/jruby-complete/1.6.7/jruby-complete-1.6.7.jar!/META-INF/jruby.home/lib/ruby/1.8/open-uri.rb:30
         (root) at test.rb:4

いくつかの詳細が欠けていると確信しています。助けていただければ幸いです。

4

2 に答える 2

1

代わりにopensslを要求してみてください:

require 'openssl'
require 'open-uri'
open('https://google.com')

もちろん、これで問題が解決することはありません。あなたgem install jruby-opensslはjrubyの宝石の中にいますが、Javaを使用せずに直接呼び出すよりも、変数jrubyに基づいて宝石を解決することに頼るべきではありません。ENV

またSSLError、証明書の検証を無視するように構成していないため、https:// URI を取得する方法のサンプルを次に示します: https://gist.github.com/1361989

于 2012-04-22T06:46:28.393 に答える
-1

OK、エラーが見つかりました。

誤って、GEM_PATH の代わりに自分の gem リポジトリを指す GEM_HOME 変数を構成しました。GEM_PATH 環境変数を構成した後、すべてが正常に機能するようになりました。

于 2012-04-22T09:25:24.737 に答える