Most of the work I do is with RESTful web services but one of our customers has a legacy SOAP interface. We're a Java shop and currently moving things to Grails and supporting their old SOAP service is adding "custom" development to our enhancements.
Basically, their WSDL contains multiple operations with the same name that reference different methods. This causes problems with the libraries I'd like to use since they don't support overloading. So I've been modifying their WSDL to get things to work and each time we add new methods or make changes, I bring up cleaning up their WSDL to remove the overloaded operations.
Example:
<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>
I'd like to present good articles and documentation on why they should update their WSDL and also to justify the addition work required on our side if they don't. Simply telling them doesn't seem to be enough. I believe they should be able to modify their WSDL without too much difficulty, but don't have the expertise to tell them how or why.
Where are some good references on when overloading was dropped and why this causes issues with current tools?