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:
Use a client stub to create a static Web service call.
Use the Dynamic Invocation Interface to create a dynamic 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 ATG 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):
Boolean
Byte
Double
Float
Int
Long
Short
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
ATG Web service following the static and dynamic processes.