@Eli - the thing is you don't need / want to learn SOAP.
Web services are described via WSDL and the process is similar to how IDL (Corba) works.
Someone defines an interface within a WSDL file.
Once the interface is agreed upon, software tools (generically called WSDL To Java) are used to generate code stubs for the service. This means that all the SOAP and HTTP stuff are abstracted away and already implemented for you by the web service implementation.
All you need to do is implement a client, using the client stubs, or a server, using the server stubs. The client and the server need not share implementation language, platforms or what not since the interface is standardized via the WSDL.
See Apache Axis if you're into Java - they have tutorials on web services and if you can run a tomcat server of your own where you can run your own service (AXIS is implemented as a tomcat web application).
This is a workable tested client for a web service:
import localhost.axis.EchoHeaders_jws.*; //note the import for the client stubs
public class Client {
public static void main( String[] arguments) throws Exception
{
EchoHeadersServiceLocator finderi = new EchoHeadersServiceLocator();
EchoHeaders e = finderi.getEchoHeaders(
new java.net.URL("http://localhost:8080/axis/EchoHeaders.jws"));
System.out.println( e.echo("All work and no play..." )); // print the result of the echo call from the server side
}
}