Invoker (Java SE 10 & JDK 10 )
Keywords: javax.xml.ws.spi.Invoker class

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

## Class Invoker

- java.lang.Object
- - javax.xml.ws.spi.Invoker

-     public abstract class Invoker
      extends Object

  Invoker hides the detail of calling into application endpoint implementation. Container hands over an implementation of Invoker to JAX-WS runtime, and jax-ws runtime calls `invoke(java.lang.reflect.Method, java.lang.Object...)` for a web service invocation. Finally, Invoker does the actual invocation of web service on endpoint instance. Container also injects the provided `WebServiceContext` and takes care of invoking `javax.annotation.PostConstruct` methods, if present, on the endpoint implementation.
  Since:
    1.7, JAX-WS 2.2
  See Also:
    `Provider.createEndpoint(String, Class, Invoker, WebServiceFeature...)`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Invoker()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | `inject​(WebServiceContext webServiceContext)` | JAX-WS runtimes calls this method to ask container to inject WebServiceContext on the endpoint instance.
    `abstract Object` | `invoke​(Method m, Object... args)` | JAX-WS runtime calls this method to do the actual web service invocation on endpoint instance.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Invoker

          public Invoker()

  - ### Method Detail

    - #### inject

          public abstract void inject​(WebServiceContext webServiceContext)
                               throws IllegalAccessException,
                                      IllegalArgumentException,
                                      InvocationTargetException

      JAX-WS runtimes calls this method to ask container to inject WebServiceContext on the endpoint instance. The `WebServiceContext` object uses thread-local information to return the correct information during the actual endpoint invocation regardless of how many threads are concurrently being used to serve requests.
      Parameters:
        `webServiceContext` - a holder for MessageContext
      Throws:
        `IllegalAccessException` - if the injection done by reflection API throws this exception
        `IllegalArgumentException` - if the injection done by reflection API throws this exception
        `InvocationTargetException` - if the injection done by reflection API throws this exception

    - #### invoke

          public abstract Object invoke​(Method m,
                                        Object... args)
                                 throws IllegalAccessException,
                                        IllegalArgumentException,
                                        InvocationTargetException

      JAX-WS runtime calls this method to do the actual web service invocation on endpoint instance. The injected `WebServiceContext.getMessageContext()` gives the correct information for this invocation.
      Parameters:
        `m` - Method to be invoked on the service
        `args` - Method arguments
      Returns:
        return value of the method
      Throws:
        `IllegalAccessException` - if the invocation done by reflection API throws this exception
        `IllegalArgumentException` - if the invocation done by reflection API throws this exception
        `InvocationTargetException` - if the invocation done by reflection API throws this exception
      See Also:
        `Method.invoke(java.lang.Object, java.lang.Object...)`