2017-10-17 62 views
-1

我想我已经阅读了与此主题相关的所有主题,但仍然没有解决方案。 我使用:RubyMine Rails 5 Savon net_http Errno :: ECONNRESET SSL_Connect

  • 的RubyMine 2017年2月4日
  • 红宝石2.4.1
  • 的Rails 5.1.0
  • 萨翁

当我在我的Rails控制台萨翁连接到服务器,我收到以下错误:

Errno :: ECONNRESET:现有连接被强制关闭远程主机。 - 所以SSL_connect

这是我的代码使用方法:

wsdlUrl = 'https://some.server.com/ws/schema/Echo.wsdl' 
licenseKey = '1234567890' 

client = Savon.client(wsdl: wsdlUrl, 
        log:true, 
        ssl_verify_mode: :none) 

response = client.call(:echo, 
         message: { licenseKey: licenseKey, 
            value: 'Hello World'}) 

puts "\nResult \"#{response.body[:echo_response][:value]}\" was returned" 

我曾尝试以下操作:

  • 下载CA-bundle.crt并添加到我的系统环境(并重新启动
    一切)
  • 更新了我的宝石
  • 重新安装Ruby,Rails和RubyMine
  • 创建一个新的应用程序,并复制代码
  • 补充说: “需要的OpenSSL” 的代码
  • 添加以下代码:

    require 'open-uri' 
    require 'net/https' 
    module Net 
        class HTTP 
        alias_method :original_use_ssl=, :use_ssl= 
        def use_ssl=(flag) 
         path = (Rails.env == "development") ? "lib/ca-bundle.crt" : "/usr/lib/ssl/certs/ca-certificates.crt" 
         self.ca_file = Rails.root.join(path).to_s 
         self.verify_mode = OpenSSL::SSL::VERIFY_PEER 
         self.original_use_ssl = flag 
        end 
        end 
    end 
    

就没有什么工作了。

奇怪,这是这样的:

当我运行的轨道(发展)控制台,我输入上面的代码,我得到了所以SSL_connect错误。当我在RubyMine中更改一些代码时,不要重新启动控制台,我不会收到任何错误。当我重新运行Rails控制台时,我再次遇到ssl-connect错误。

有谁知道在哪里可以看

编辑1: 我发现,如果我把上面的代码文件(echo.rb)当我打电话文档中的终端,因为它会在工作:红宝石echo.rb

+0

它是否可以通过脚本工作? –

+0

当我从终端调用脚本时它确实有效。我把代码放在一个文件echo.rb中。当我运行ruby echo.rb时它会工作... – Jerry

+0

对不起,无法帮助Rails。 –

回答

0

对于所有有同样的问题:

第一

$ gem install 'http' (or add gem 'http' to your Gemfile and install) 

然后在代码中添加此:

require 'http' 
相关问题