2011-08-26 65 views
5

我正在構建一個基本上圍繞一堆SOAP命令的rails應用程序。緩存WSDL文件而不是在每個SOAP請求中獲取它

每次我想要實現某種緩存方法時,我都不想獲取WSDL,儘管我不太確定哪裏可以開始這樣做。

有什麼特定的Rails,可以幫助我,或者我應該通過Ruby下載文件並加載它?只是在尋找某種大方向...

回答

9

如果您使用savon然後remote WSDL will be downloaded once per client instance

(遠程)WSDL,必須下載併爲每個客戶端解析一次,因此帶有性能損失

如果是過於頻繁,你可以從本地文件加載WSDL:

client = Savon::Client.new do 
    wsdl.document = '/path/to/wsdl.xml' 
end 
+0

的時刻_As這爲n ow新語法_' @client = Savon.client do wsdl'/path/to/your/SoapApiService.wsdl' end' – olleh