@Beta @Contract @ConstrainedTo(value=CLIENT) public interface PostInvocationInterceptor
ClientResponseFilters are executed.
It is ensured that all PostInvocationInterceptors are executed after the request, in the reverse order given by the
Priority, the higher the priority the later the execution. Any Throwable thrown when
the afterRequest(ClientRequestContext, ClientResponseContext) or
onException(ClientRequestContext, ExceptionContext) is being processed is accumulated and
a multi RuntimeException with other exceptions supressed is being thrown at the end
(possibly encapsulated in a ProcessingException if not a single RuntimeException),
unless resolved by onException(ClientRequestContext, ExceptionContext). During the
PostInvocationInterceptor processing, the accumulated Deque of the Throwables is available in the
PostInvocationInterceptor.ExceptionContext.
For asynchronous invocation, the PostInvocationInterceptor is invoked in the request thread, i.e. in the thread
provided by ExecutorService.
When the lowest priority PostInvocationInterceptor is executed first, one of the two methods can be invoked.
afterRequest(ClientRequestContext, ClientResponseContext) in a usual case when no previous
Throwable was caught, or onException(ClientRequestContext, ExceptionContext) when
the Throwable was caught. Should the PostInvocationInterceptor.ExceptionContext.resolve(Response) be utilized in that case,
the next PostInvocationInterceptor's
afterRequest method will be
invoked. Similarly, when a Throwable is caught during the PostInvocationInterceptor execution, the next
PostInvocationInterceptor's
onException method will be invoked.| Modifier and Type | Interface and Description |
|---|---|
static interface |
PostInvocationInterceptor.ExceptionContext
The context providing information when the
Throwable (typically, the RuntimeException) is caught. |
| Modifier and Type | Method and Description |
|---|---|
void |
afterRequest(javax.ws.rs.client.ClientRequestContext requestContext,
javax.ws.rs.client.ClientResponseContext responseContext)
The method is invoked after a request when no
Throwable is thrown, or the Throwables are
resolved by previous PostInvocationInterceptor. |
void |
onException(javax.ws.rs.client.ClientRequestContext requestContext,
PostInvocationInterceptor.ExceptionContext exceptionContext)
The method is invoked after a
Throwable is caught during the client request chain processing. |
void afterRequest(javax.ws.rs.client.ClientRequestContext requestContext,
javax.ws.rs.client.ClientResponseContext responseContext)
Throwable is thrown, or the Throwables are
resolved by previous PostInvocationInterceptor.requestContext - the request context.responseContext - the response context of the original Response or response context
defined by the new resolving
Response.void onException(javax.ws.rs.client.ClientRequestContext requestContext,
PostInvocationInterceptor.ExceptionContext exceptionContext)
Throwable is caught during the client request chain processing.requestContext - the request context.exceptionContext - the context available to handle the caught Throwables.Copyright © 2007-2021, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.