2011-05-11 1 views
0

일부 SOAP 요청을 처리하기 위해 Savon 라이브러리를 사용하고 있습니다. 그리고 IRB와 Rails 응용 프로그램 내에서 거의 동일한 코드를 사용하고 있습니다. 내가 IRB를 실행하고있을 때 모든 것이 제대로 작동하지만 레일스는 savon의 do_request -> respond_with 메서드에서 "no method 'to_hash'for nil : NilClass"오류를 생성합니다. (IRB 또는 레일 내에서 실행시 동일)Savon은 Rails 앱에서 오류를 발생 시키지만 irb에서는 오류가 발생하지 않습니다.

여기 내 코드입니다 : 그 예외의

# setup Savon client for SOAP requests 
    client = Savon::Client.new "http://www.webservicex.net/country.asmx?WSDL" 

    # test if "webservicex.net" server is up and running 
    actions = client.wsdl.soap_actions 

    raise "SOAP server is down" if actions.nil? or actions.length <= 0 

    # get country list 
    resp = client.request :get_countries 

    raise "No response for countries" if resp.nil? 

    resp = resp[:get_countries_response][:get_countries_result] 

없음이 상승하지 않고 지금까지 '핑 서버'가 아닌 코드가 실행됩니다.

무엇이 잘못되었으며 어떻게 해결할 수 있습니까?

답변