2017-10-17 7 views
-1

Je pense que j'ai lu tous les sujets liés à ce sujet, mais toujours pas de solution. J'utilise:RubyMine Rails 5 Savon net_http Errno :: ECONNRESET SSL_Connect

  • RubyMine 2017.2.4
  • Ruby 2.4.1
  • Rails 5.1.0
Savon

Lorsque je me connecte dans ma console de rails avec un Savon serveur, j'obtiens l'erreur suivante:

Errno :: ECONNRESET: Une connexion existante a été forcée par le hôte distant. - SSL_CONNECT

Voici le code que j'utilise:

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" 

J'ai essayé de suivre:

  • Télécharger le ca-bundle.crt et ajouté à mon environnement système (et redémarrez
    tout)
  • mis à jour mes gemmes
  • Réinstaller Ruby, Rails et RubyMine
  • créé un nouvelle application et code Copié
  • ajouté "nécessite OpenSSL" au code
  • ajouté le code suivant:

    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 
    

Juste rien ne fonctionne plus.

L'étrange c'est la suivante:

Quand je lance les rails (développement) console, et je Recopier le code que je reçois l'erreur de SSL_CONNECT. Lorsque je change du code dans RubyMine et que je ne redémarre PAS la console, je ne reçois aucune erreur. Lorsque je réexécute la console Rails, j'obtiens à nouveau l'erreur ssl-connect.

Est-ce que quelqu'un sait où je peux regarder

EDIT 1: J'ai découvert que si je mets au-dessus du code dans un document (echo.rb), il fonctionnera quand je l'appelle le document dans le terminal: rubis echo.rb

+0

ça marche à partir d'un script? –

+0

Cela fonctionne quand j'appelle le script du terminal. J'ai placé le code dans un document echo.rb. Quand je cours ruby ​​echo.rb cela fonctionnera ... – Jerry

+0

désolé, ne peut pas aider avec Rails. –

Répondre

0

Pour tous ceux qui sont le même problème:

premier

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

puis ajoutez dans votre code:

require 'http'