Class InstanceResolver<T>
- Direct Known Subclasses:
AbstractInstanceResolver
The JAX-WS spec always use a singleton instance to serve all the requests, but this hook provides a convenient way to route messages to a proper receiver.
Externally, an instance of InstanceResolver is
associated with WSEndpoint.
Possible Uses
One can use WS-Addressing message properties to decide which instance to deliver a message. This would be an important building block for a stateful web services.
One can associate an instance of a service with a specific WS-RM session.
- Author:
- Kohsuke Kawaguchi
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> InstanceResolver<T>createDefault(Class<T> clazz) Creates a defaultInstanceResolverthat serves the given class.static <T> InstanceResolver<T>createDefault(Class<T> clazz, boolean bool) Deprecated.This is added here because a Glassfish integration happened with this signature.static <T> InstanceResolver<T>createFromInstanceResolverAnnotation(Class<T> clazz) Checks forInstanceResolverAnnotationand creates an instance resolver from it if any.Wraps thisInstanceResolverinto anInvoker.protected static <T> TcreateNewInstance(Class<T> cl) static <T> InstanceResolver<T>createSingleton(T singleton) Creates aInstanceResolverimplementation that always returns the specified singleton instance.voiddispose()Called byWSEndpointwhenWSEndpoint.dispose()is called.voidpostInvoke(Packet request, T servant) Called by the defaultInvokerafter the method call is done.abstract TDecides which instance of 'T' serves the given request message.voidstart(WSWebServiceContext wsc, WSEndpoint endpoint) Called byWSEndpointwhen it's set up.voidstart(jakarta.xml.ws.WebServiceContext wsc) Deprecated.
-
Constructor Details
-
InstanceResolver
public InstanceResolver()
-
-
Method Details
-
resolve
Decides which instance of 'T' serves the given request message.This method is called concurrently by multiple threads. It is also on a criticail path that affects the performance. A good implementation should try to avoid any synchronization, and should minimize the amount of work as much as possible.
- Parameters:
request- Always non-null. Represents the request message to be served. The caller may not consume theMessage.
-
postInvoke
Called by the defaultInvokerafter the method call is done. This givesInstanceResolvera chance to do clean up.Alternatively, one could override
createInvoker()to create a custom invoker to do this in more flexible way.The default implementation is a no-op.
- Parameters:
request- The same request packet given toresolve(Packet)method.servant- The object returned from theresolve(Packet)method.- Since:
- 2.1.2
-
start
Called byWSEndpointwhen it's set up.This is an opportunity for
InstanceResolverto do a endpoint-specific initialization process.- Parameters:
wsc- TheWebServiceContextinstance to be injected to the user instances (assumingInstanceResolver
-
start
public void start(@NotNull jakarta.xml.ws.WebServiceContext wsc) Deprecated. -
dispose
public void dispose()Called byWSEndpointwhenWSEndpoint.dispose()is called. This allowsInstanceResolverto do final clean up.This method is guaranteed to be only called once by
WSEndpoint. -
createSingleton
Creates aInstanceResolverimplementation that always returns the specified singleton instance. -
createDefault
Deprecated.This is added here because a Glassfish integration happened with this signature. Please do not use this. Will be removed after the next GF integration. -
createDefault
Creates a defaultInstanceResolverthat serves the given class. -
createFromInstanceResolverAnnotation
Checks forInstanceResolverAnnotationand creates an instance resolver from it if any. Otherwise null. -
createNewInstance
-
createInvoker
Wraps thisInstanceResolverinto anInvoker.
-