Having spent copious amounts of time making a .NET client successfully interoperate with Java based web services, my level of frustration is rising. Fast.
I am not even going to begin to enumerate the problems that I have encountered, but they have been mostly related to various WSDL formats, some of which are unsupported by .NET, and some of which are unsupported by various Java based web service frameworks.
So, admitting failure, I decided to look into SOAP alternatives, and I came across XML-RPC. Unlike SOAP/WSDL, XML-RPC is extremely simple: The specification is 8 pages including examples, and there are client and server implementations for pretty much any language you can think of. So, what’s the downside to XML-RPC compared to SOAP (taking into account that I was going to use SOAP over HTTP only anyway): Well, WSDL, basically. XML-RPC does not statically define its endpoints, instead it is up to the client to know what methods/parameters are supported by a given XML-RPC service. Also, SOAP supports a number of data types not supported by XML-RPC, but not really anything that causes problems.
Depending on the server implementation used, it is in fact possible to automatically generate clients (kindof). More on this in a little while.
