The Apache group has created a nice SOAP implementation for Java that makes it simple to create SOAP clients and to make objects accessible via SOAP. You can get the package from http://xml.apache.org/soap. The Apache version of SOAP is based on a previous implementation from IBM.
The Apache SOAP implementation is just a set of client libraries, a set of server libraries, and a servlet to process the incoming requests. You use the client libraries to create a request and send it to the server. The server decodes the request, invokes the method, and packages the result. The client libraries then decode the result and return it to you.
Figure 25.2 shows the sequence of a SOAP request using the Apache SOAP implementation.