我正在使用Sabon库来获取一些SOAP请求的工作。我在IRB和Rails应用程序中使用了几乎相同的代码。当我运行IRB时,一切都可以正常工作,但是Rails在savon的do_request -> respond_with
方法中生成错误"nil:NilClass没有方法'to_hash'"。
这是我的代码(在IRB或Rails中运行时相同):
# 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]
这些异常都不会引发,也不会执行比"pinging服务器"更远的代码。
出了什么问题,我该如何解决?
这是httpi
宝石的问题 - https://github.com/rubiii/savon/issues/163只需使用0.9.1
版本。