Dispatch
objects have two usage modes :
Message mode
Message Payload mode (Payload mode)
The usage mode you specify for a Dispatch
object determines the amount of
detail is passed to the user level code.
In message mode , a Dispatch
object
works with complete messages. A complete message includes any binding specific headers and
wrappers. For example, a consumer interacting with a service that requires SOAP messages
would need to provide the Dispatch
object's invoke()
method a
fully specified SOAP message. The invoke()
method will also return a fully
specified SOAP message. The consumer code is responsible for completing and reading the SOAP
message's headers and the SOAP message's envelope information.
Note
Message mode is not ideal when you wish to work with JAXB objects.
You specify that a Dispatch
object uses message mode by providing the
value java.xml.ws.Service.Mode.MESSAGE
when creating the Dispatch object.
In payload mode , also called message payload mode,
a Dispatch
object works with only the payload of a message. For example, a
Dispatch
object working in payload mode works only with the body of a SOAP
message. The binding layer processes any binding level wrappers and headers. When a result
is returned from invoke()
the binding level wrappers and headers are already
striped away and only the body of the message is left.
Note
When working with a binding that does not use special wrappers, such as the Artix ESB XML binding, payload mode and message mode provide the same results.
You specify that a Dispatch
object uses payload mode by providing the
value java.xml.ws.Service.Mode.PAYLOAD
when creating the Dispatch
object.