When you call a Web Service, you create resources that describe the Web Service you want to call, its location, and initial inputs. Axis then takes those resources and produces from them a SOAP message that it then sends to the Web Service itself.

There are two ways to create a Web Service call:

The main distinction between the two processes is the data types they can handle. Because using Web Services requires that data be converted into several formats — from a native format into an XML representation of that format back into the native form — it is important that you choose a process designed to work with the data types accessed by the Web Services you want to employ.

The static process can handle any data type regardless of whether it’s primitive, complex, object, or non-standard. Non-standard types may require some extra effort as is the case when accessing Oracle ATG Web Commerce RepositoryItems or JMS messages. The dynamic process, conversely, is limited to only working with object versions of these data types (as permitted by SOAP 1.1):

Some complex types such as Array, List, Set, and Map may be supported using the dynamic process in a restricted way. See the JAX-RPC Specification for details on data type restrictions.

The subsequent sections describe how you would make a call to the loginUser Oracle ATG Web Commerce Web Service following the static and dynamic processes.