我所做的大部分工作都是使用RESTful Web服務,但我們的一位客戶擁有傳統的SOAP接口。我們是一家Java商店,目前正在將事情轉移到Grails,並且支持他們的舊SOAP服務正在爲我們的增強添加「定製」開發。我在哪裏可以找到不支持SOAP方法重載的文檔?
基本上,他們的WSDL包含多個引用不同方法的名稱相同的操作。這會導致我想使用的庫出現問題,因爲它們不支持重載。所以我一直在修改他們的WSDL來讓事情發揮作用,每次我們添加新的方法或進行更改時,我都會清理他們的WSDL以刪除重載的操作。
例子:
<wsdl:operation name="GetOrder">
<wsdl:input message="tns:GetOrderSoapIn" />
<wsdl:output message="tns:GetOrderSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetOrder">
<wsdl:input name="GetByAlternateOrderID" message="tns:GetByAlternateOrderIDSoapIn" />
<wsdl:output name="GetByAlternateOrderID" message="tns:GetByAlternateOrderIDSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetOrder">
<wsdl:input name="GetOrderByID" message="tns:GetOrderByIDSoapIn" />
<wsdl:output name="GetOrderByID" message="tns:GetOrderByIDSoapOut" />
</wsdl:operation>
想展示爲什麼他們需要更新自己的WSDL好文章及文獻,也證明,如果他們不站在我們這邊需要添加工作我。簡單地告訴他們似乎不夠。我相信他們應該能夠在沒有太多困難的情況下修改他們的WSDL,但是沒有專業知識來告訴他們如何或爲什麼。
哪裏有一些很好的參考資料,說明什麼時候重載被刪除,爲什麼會導致當前工具出現問題?