2017-10-17 1 views
-1

Ich glaube, ich habe alle Themen zu diesem Thema gelesen, aber immer noch keine Lösung. Ich verwende:RubyMine Rails 5 Savon net_http Errno :: ECONNRESET SSL_Connect

  • RubyMine 2017.02.04
  • Rubin 2.4.1
  • Rails 5.1.0
  • Savon

Als ich in meinen Schienen Konsole mit Savon an eine Verbindung Server, bekomme ich folgende Fehlermeldung:

Errno :: ECONNRESET: Eine bestehende Verbindung wurde zwangsweise durch diegeschlossenRemote-Host. - SSL_connect

Dies ist der Code, den ich verwenden:

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" 

Ich habe versucht, folgende:

  • Laden Sie die ca-bundle.crt und hinzugefügt, um meine Systemumgebung (und neu starten
    alles)
  • Aktualisiert meine Edelsteine ​​
  • Installieren Sie Ruby, Rails und RubyMine
  • eine neue App und kopierten Code
  • Erstellt hinzugefügt, um den Code
  • den folgenden Code hinzugefügt "openssl erfordern": mehr

    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 
    

Einfach nichts funktioniert.

Das seltsame dies ist dies:

Wenn ich die Schienen (Entwicklung) Konsole laufen, und ich geben Sie den angezeigten Code ich den ssl_connect Fehler. Wenn ich Code in RubyMine ändere und die Konsole NICHT neu starte, erhalte ich keine Fehler. Wenn ich die Rails-Konsole erneut ausführen, erhalte ich den Fehler ssl-connect erneut.

Weiß jemand, wo ich

EDIT 1 aussehen: ich, wenn ich über Code herausgefunden, in einem Dokument setzen (echo.rb) es wird funktionieren, wenn ich wie das Dokument im Terminal aufrufen: Rubin echo.rb

+0

funktioniert es von einem Skript? –

+0

Es funktioniert, wenn ich das Skript vom Terminal aus aufrufen. Ich legte den Code in ein Dokument echo.rb. Wenn ich ruby ​​echo.rb ausführen wird es funktionieren ... – Jerry

+0

Sorry, kann nicht mit Rails helfen. –

Antwort

0

Für alle, die das gleiche Problem haben:

erste

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

dann diese in Ihrem Code hinzu:

require 'http' 
Verwandte Themen