我處理從期望接收方法服務器的SOAP Web服務調用與格式的要求PARAMATERS的:SOAP :: RPC ::驅動程序格式問題。我該如何改變它?</p> <pre><code><urn:offeringId> 354 </urn:offeringId> </code></pre> <p>但SOAP RPC ::驅動程序::正在生成郵件形式:
<offeringId xsi:type = "xsd:int">354</offeringId>
服務器保留時,它得到這些消息示數(尤其是因爲它的預期offeringId是一個自定義類型的內部本身,而不是一個int)。
是否有配置驅動程序來格式化服務器期待它的方式。服務器甚至在做SOAP嗎?我很難找到對SOAP格式化的引用(我知道它的確可以工作,因爲SOAPUI對這種類型的消息工作正常)。
-Jenny
編輯:我有至少部分的它解決。 RPC :: Driver(顯然)使用RPC標準,而顯然我試圖與之交談的服務器正在執行「文檔」。現在,當我查看RPC :: Driver的API時,我看到一個名爲「add_document_method」的方法。這對我來說可能是我想要的,但我無法弄清楚要給它什麼參數。我周圍的網看到的例子並沒有太大的意義對我來說,像:
def GetNamePair(response)
response.account.each do |x|
class << x
attr :configuration, true
end
x.configuration = Hash[*x.a.map do |y|
[y.__xmlattr[XSD::QName.new(nil, 'n')], String.new(y)]
end.flatten]
end
end
mNS = 'urn:zimbraAdmin'
drv.add_document_method('GetAllAdminAccountsRequest', mNS, [XSD::QName.new(mNS, 'GetAllAdminAccountsRequest')],
[XSD::QName.new(mNS, 'GetAllAdminAccountsResponse')])
puts YAML.dump(GetNamePair(drv.GetAllAdminAccountsRequest([]))
我真正知道的是,我有需要在某些參數的方法....我真不不明白爲什麼,如果這種方法做到了我認爲的那樣,它就會變得更加複雜。這不就是採取完全相同的數據並以不同的方式進行格式化嗎?我很困惑....