spring-framework / org.springframework.web.context.request.async

Package org.springframework.web.context.request.async

Types

AsyncWebRequest

interface AsyncWebRequest : NativeWebRequest

Extends NativeWebRequest with methods for asynchronous request processing.

CallableProcessingInterceptorAdapter

abstract class CallableProcessingInterceptorAdapter : CallableProcessingInterceptor

Abstract adapter class for the CallableProcessingInterceptor interface, for simplified implementation of individual methods.

DeferredResultProcessingInterceptorAdapter

abstract class DeferredResultProcessingInterceptorAdapter : DeferredResultProcessingInterceptor

Abstract adapter class for the DeferredResultProcessingInterceptor interface for simplified implementation of individual methods.

StandardServletAsyncWebRequest

open class StandardServletAsyncWebRequest : ServletWebRequest, AsyncWebRequest, AsyncListener

A Servlet 3.0 implementation of AsyncWebRequest.

The servlet and all filters involved in an async request must have async support enabled using the Servlet API or by adding an <async-supported>true</async-supported> element to servlet and filter declarations in web.xml.

TimeoutCallableProcessingInterceptor

open class TimeoutCallableProcessingInterceptor : CallableProcessingInterceptor

Sends a 503 (SERVICE_UNAVAILABLE) in case of a timeout if the response is not already committed. As of 4.2.8 this is done indirectly by setting the result to an AsyncRequestTimeoutException which is then handled by Spring MVC's default exception handling as a 503 error.

Registered at the end, after all other interceptors and therefore invoked only if no other interceptor handles the timeout.

Note that according to RFC 7231, a 503 without a 'Retry-After' header is interpreted as a 500 error and the client should not retry. Applications can install their own interceptor to handle a timeout and add a 'Retry-After' header if necessary.

TimeoutDeferredResultProcessingInterceptor

open class TimeoutDeferredResultProcessingInterceptor : DeferredResultProcessingInterceptor

Sends a 503 (SERVICE_UNAVAILABLE) in case of a timeout if the response is not already committed. As of 4.2.8 this is done indirectly by returning AsyncRequestTimeoutException as the result of processing which is then handled by Spring MVC's default exception handling as a 503 error.

Registered at the end, after all other interceptors and therefore invoked only if no other interceptor handles the timeout.

Note that according to RFC 7231, a 503 without a 'Retry-After' header is interpreted as a 500 error and the client should not retry. Applications can install their own interceptor to handle a timeout and add a 'Retry-After' header if necessary.

WebAsyncTask

open class WebAsyncTask<V : Any> : BeanFactoryAware

Holder for a Callable, a timeout value, and a task executor.

WebAsyncUtils

abstract class WebAsyncUtils

Utility methods related to processing asynchronous web requests.

Exceptions

AsyncRequestTimeoutException

open class AsyncRequestTimeoutException : RuntimeException

Exception to be thrown when an async request times out. Alternatively an applications can register a DeferredResultProcessingInterceptor or a CallableProcessingInterceptor to handle the timeout through the MVC Java config or the MVC XML namespace or directly through properties of the RequestMappingHandlerAdapter.

By default the exception will be handled as a 503 error.