Dispatch (Java SE 9 & JDK 9 )
Keywords: javax.xml.ws.Dispatch interface

Module java.xml.ws
Package javax.xml.ws

## Interface Dispatch<T>

- Type Parameters:
    `T` - The type of the message or payload
  All Superinterfaces:
    `BindingProvider`

      public interface Dispatch<T>
      extends BindingProvider

  The `Dispatch` interface provides support for the dynamic invocation of a service endpoint operations. The `javax.xml.ws.Service` class acts as a factory for the creation of `Dispatch` instances.
  Since:
    1.6, JAX-WS 2.0

- - ### Field Summary

    - ### Fields inherited from interface javax.xml.ws.BindingProvider

      `ENDPOINT_ADDRESS_PROPERTY, PASSWORD_PROPERTY, SESSION_MAINTAIN_PROPERTY, SOAPACTION_URI_PROPERTY, SOAPACTION_USE_PROPERTY, USERNAME_PROPERTY`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `T` | `invoke​(T msg)` | Invoke a service operation synchronously.
    `Response<T>` | `invokeAsync​(T msg)` | Invoke a service operation asynchronously.
    `Future<?>` | `invokeAsync​(T msg, AsyncHandler<T> handler)` | Invoke a service operation asynchronously.
    `void` | `invokeOneWay​(T msg)` | Invokes a service operation using the one-way interaction mode.

    - ### Methods inherited from interface javax.xml.ws.BindingProvider

      `getBinding, getEndpointReference, getEndpointReference, getRequestContext, getResponseContext`

- - ### Method Detail

    - #### invoke

          T invoke​(T msg)

      Invoke a service operation synchronously. The client is responsible for ensuring that the `msg` object when marshalled is formed according to the requirements of the protocol binding in use.
      Parameters:
        `msg` - An object that will form the message or payload of the message used to invoke the operation.
      Returns:
        The response message or message payload to the operation invocation.
      Throws:
        `WebServiceException` - If a fault occurs during communication with the service
        `WebServiceException` - If there is any error in the configuration of the `Dispatch` instance

    - #### invokeAsync

          Response<T> invokeAsync​(T msg)

      Invoke a service operation asynchronously. The method returns without waiting for the response to the operation invocation, the results of the operation are obtained by polling the returned `Response`.

      The client is responsible for ensuring that the `msg` object when marshalled is formed according to the requirements of the protocol binding in use.

      Parameters:
        `msg` - An object that will form the message or payload of the message used to invoke the operation.
      Returns:
        The response message or message payload to the operation invocation.
      Throws:
        `WebServiceException` - If there is any error in the configuration of the `Dispatch` instance

    - #### invokeAsync

          Future<?> invokeAsync​(T msg,
                                AsyncHandler<T> handler)

      Invoke a service operation asynchronously. The method returns without waiting for the response to the operation invocation, the results of the operation are communicated to the client via the passed in `handler`.

      The client is responsible for ensuring that the `msg` object when marshalled is formed according to the requirements of the protocol binding in use.

      Parameters:
        `msg` - An object that will form the message or payload of the message used to invoke the operation.
        `handler` - The handler object that will receive the response to the operation invocation.
      Returns:
        A `Future` object that may be used to check the status of the operation invocation. This object MUST NOT be used to try to obtain the results of the operation - the object returned from `Future<?>.get()` is implementation dependent and any use of it will result in non-portable behaviour.
      Throws:
        `WebServiceException` - If there is any error in the configuration of the `Dispatch` instance

    - #### invokeOneWay

          void invokeOneWay​(T msg)

      Invokes a service operation using the one-way interaction mode. The operation invocation is logically non-blocking, subject to the capabilities of the underlying protocol, no results are returned. When the protocol in use is SOAP/HTTP, this method MUST block until an HTTP response code has been received or an error occurs.

      The client is responsible for ensuring that the `msg` object when marshalled is formed according to the requirements of the protocol binding in use.

      Parameters:
        `msg` - An object that will form the message or payload of the message used to invoke the operation.
      Throws:
        `WebServiceException` - If there is any error in the configuration of the `Dispatch` instance or if an error occurs during the invocation.