public interface TimeoutHandler
By default, JAX-RS runtime generates a WebApplicationException
with a HTTP 503
(Service unavailable)
error response status code. A custom time-out handler
may be set
on an
asynchronous response instance to provide custom time-out event resolution.
In case of a suspend time-out event, a custom time-out handler takes typically one of the following actions:
custom response
or a custom exception
AsyncResponse
cancel(...)
methods.setting a new suspend time-out
WebApplicationException
containing the HTTP 503 status code.
Following example illustrates the use of a custom TimeoutHandler
:
public class MyTimeoutHandler implements TimeoutHandler { … public void handleTimeout(AsyncResponse ar) { if (keepSuspended) { ar.setTimeout(10, SECONDS); } else if (cancel) { ar.cancel(retryPeriod); } else { ar.resume(defaultResponse); } } … } @Path("/messages/next") public class MessagingResource { … @GET public void readMessage(@Suspended AsyncResponse ar) { ar.setTimeoutHandler(new MyTimeoutHandler()); suspended.put(ar); } … }
Modifier and Type | Method and Description |
---|---|
void |
handleTimeout(AsyncResponse asyncResponse)
Invoked when the suspended asynchronous response is about to time out.
|
void handleTimeout(AsyncResponse asyncResponse)
AsyncResponse
API documentation).
A custom time-out handler may decide to either
resume(...)
methods,cancel(...)
methods, orsetting a new suspend time-out
asyncResponse
- suspended asynchronous response that is timing out.Copyright © 1996-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.