2010-06-24 1 views
0

savon을 사용하여 API를 사용하고 있습니다. 아래 코드는 내 코드입니다.(soap : Server) 서버가 요청을 처리 할 수 ​​없습니다. ---> String 참조가 String의 인스턴스로 설정되지 않습니다. 매개 변수 이름 : s

wSDL = "some_wsdl" 
client = Savon::Client.new(wSDL)  
response = client.soap_action do |soap| 
soap.body = "<sample>string_value</sample>" , "<sample1>string_value</sample1>" 
end 

오류 (제목)가 나왔습니다. 응용 프로그램 추적이 아래에 있습니다. Btw, 내 wsdl은 https://some_wsdl 형식입니다.

 
/var/lib/gems/1.8/gems/savon-0.7.9/lib/savon/response.rb:141:in `handle_soap_fault' 
/var/lib/gems/1.8/gems/savon-0.7.9/lib/savon/response.rb:81:in `initialize' 
/var/lib/gems/1.8/gems/savon-0.7.9/lib/savon/client.rb:95:in `new' 
/var/lib/gems/1.8/gems/savon-0.7.9/lib/savon/client.rb:95:in `method_missing' 
app/controllers/deposit_controller.rb:33:in `deposit' 

답변

0

왜 오류가 발생하지만 비누 몸체를 문자열로 작성하여 생활을 어렵게 만들고 있는지 확실하지 않습니다. Savon은 해시에서 SOAP 요청을 작성하므로 다음과 같이하면 더 쉽게 원하는 작업을 수행 할 수 있습니다.

wSDL = "some_wsdl" 
client = Savon::Client.new(wSDL)  

# Add more details here including nested hashes  
request_hash = { 
    "sample" => string_value, 
    "sample1" => string_value 
} 

response = client.soap_action do |soap| 
    soap.body = request_hash 
end