Package javax.ws.rs.container
Interface TimeoutHandler
-
public interface TimeoutHandler
Asynchronous response suspend time-out handler. Users may utilize this callback interface to provide custom resolution of time-out events.By default, the runtime generates a
WebApplicationException
with aHTTP 503 (Service unavailable)
error response status code. A custom time-out handler may beset
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:
- Resumes the suspended asynchronous response using a
custom response
or acustom exception
- Cancels the response by calling one of the
AsyncResponse
cancel(...)
methods. - Extends the suspend period of the response by
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); } … }
- Since:
- 2.0
- Author:
- Marek Potociar
- Resumes the suspended asynchronous response using a
-
-
Method Summary
Modifier and Type Method Description void
handleTimeout(AsyncResponse asyncResponse)
Invoked when the suspended asynchronous response is about to time out.
-
-
-
Method Detail
-
handleTimeout
void handleTimeout(AsyncResponse asyncResponse)
Invoked when the suspended asynchronous response is about to time out. Implementing time-out handlers may use the callback method to change the default time-out strategy defined by this specification (seeAsyncResponse
API documentation).A custom time-out handler may decide to either
- resume the suspended response using one of it's
resume(...)
methods, - cancel the suspended response using one of it's
cancel(...)
methods, or - extend the suspend period by
setting a new suspend time-out
- Parameters:
asyncResponse
- suspended asynchronous response that is timing out.
- resume the suspended response using one of it's
-
-