Forum: Italian Ruby user group SOAP Timeout

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Stefano G. (Guest)
on 2007-05-09 19:02
(Received via mailing list)
ciao a tutti

sapete come si fa ad allungare il timeout di una richiesta SOAP?

questo pseudocodice magari vi da un idea di cosa sto facendo

jeko

--------8<------------8<------------8<----------


require 'soap/wsdlDriver'

      factory = SOAP::WSDLDriverFactory.new(URLWSDL)
      client = factory.create_rpc_driver()
      client.wiredump_file_base = "soap-log.txt"
      result = client.metodo(:param => valore)
      message = result.metodoResult
      p message
Stefano G. (Guest)
on 2007-05-11 21:18
(Received via mailing list)
ovvero - me la canto e me la
sòno
questa la posto perché è praticamente una feature non documentata

per fare un client SOAP che usi un WSDL si fa cosi

require 'soap/wsdlDriver'
URLWSDL = "http://url/del/file/wsdl"

factory = SOAP::WSDLDriverFactory.new(URLWSDL)
driver = factory.create_rpc_driver()

    #questa è la riga dove setto il timeout di ricezione
    driver.options["protocol.http.receive_timeout"]  = 600

    driver.wiredump_file_base = "soap-log.txt"

    result = client.nomeMetodo(:nomeParametro => valore, :nomeParametro2
=> valore2 ... )
    message = result.nomeMetodoResult




la cosa simpatica ed estremeamente infame è che se a run time vedete il
valore di  driver.options["protocol.http.receive_timeout"] vi ritorna
nil e che se andate avanti ad inspect arrivate a una struttura del tipo
 driver.options["protocol"]["http"]["receive_timeout"] che però è read only
quindi si sono inventati
driver.options["protocol.http.receive_timeout"] per permettere di
cambiare il timeout della libreria NET::HTTP che viene implicitamente
chiamata da SOAP

quindi, se dovete cambiare il send_timeout o il receive_timeout o il
connect_timeout ricordatevi queste 4 righe :) anche perché sono
socumentate solo nel changelog 1.8.1 > 1.8.2

http://dev.ctor.org/soap4r/wiki/Changes-ruby181_ruby182


bella!
jeko
This topic is locked and can not be replied to.