Class AbstractErrorWebExceptionHandler

  • All Implemented Interfaces:
    org.springframework.beans.factory.InitializingBean, org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler, org.springframework.web.server.WebExceptionHandler
    Direct Known Subclasses:
    DefaultErrorWebExceptionHandler

    public abstract class AbstractErrorWebExceptionHandler
    extends Object
    implements org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler, org.springframework.beans.factory.InitializingBean
    Abstract base class for ErrorWebExceptionHandler implementations.
    Since:
    2.0.0
    See Also:
    ErrorAttributes
    • Constructor Summary

      Constructors 
      ConstructorDescription
      AbstractErrorWebExceptionHandler​(org.springframework.boot.web.reactive.error.ErrorAttributes errorAttributes, ResourceProperties resourceProperties, org.springframework.context.ApplicationContext applicationContext) 
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidafterPropertiesSet() 
      protected ThrowablegetError​(org.springframework.web.reactive.function.server.ServerRequest request)
      Extract the original error from the current request.
      protected Map<String,​Object>getErrorAttributes​(org.springframework.web.reactive.function.server.ServerRequest request, boolean includeStackTrace)
      Extract the error attributes from the current request, to be used to populate error views or JSON payloads.
      protected abstract org.springframework.web.reactive.function.server.RouterFunction<org.springframework.web.reactive.function.server.ServerResponse>getRoutingFunction​(org.springframework.boot.web.reactive.error.ErrorAttributes errorAttributes)
      Create a RouterFunction that can route and handle errors as JSON responses or HTML views.
      reactor.core.publisher.Mono<Void>handle​(org.springframework.web.server.ServerWebExchange exchange, Throwable throwable) 
      protected booleanisTraceEnabled​(org.springframework.web.reactive.function.server.ServerRequest request)
      Check whether the trace attribute has been set on the given request.
      protected reactor.core.publisher.Mono<org.springframework.web.reactive.function.server.ServerResponse>renderDefaultErrorView​(org.springframework.web.reactive.function.server.ServerResponse.BodyBuilder responseBody, Map<String,​Object> error)
      Render a default HTML "Whitelabel Error Page".
      protected reactor.core.publisher.Mono<org.springframework.web.reactive.function.server.ServerResponse>renderErrorView​(String viewName, org.springframework.web.reactive.function.server.ServerResponse.BodyBuilder responseBody, Map<String,​Object> error)
      Render the given error data as a view, using a template view if available or a static HTML file if available otherwise.
      voidsetMessageReaders​(List<org.springframework.http.codec.HttpMessageReader<?>> messageReaders)
      Configure HTTP message readers to deserialize the request body with.
      voidsetMessageWriters​(List<org.springframework.http.codec.HttpMessageWriter<?>> messageWriters)
      Configure HTTP message writers to serialize the response body with.
      voidsetViewResolvers​(List<org.springframework.web.reactive.result.view.ViewResolver> viewResolvers)
      Configure the ViewResolver to use for rendering views.
    • Constructor Detail

      • AbstractErrorWebExceptionHandler

        public AbstractErrorWebExceptionHandler​(org.springframework.boot.web.reactive.error.ErrorAttributes errorAttributes,
                                                ResourceProperties resourceProperties,
                                                org.springframework.context.ApplicationContext applicationContext)
    • Method Detail

      • setMessageWriters

        public void setMessageWriters​(List<org.springframework.http.codec.HttpMessageWriter<?>> messageWriters)
        Configure HTTP message writers to serialize the response body with.
        Parameters:
        messageWriters - the HttpMessageWriters to use
      • setMessageReaders

        public void setMessageReaders​(List<org.springframework.http.codec.HttpMessageReader<?>> messageReaders)
        Configure HTTP message readers to deserialize the request body with.
        Parameters:
        messageReaders - the HttpMessageReaders to use
      • setViewResolvers

        public void setViewResolvers​(List<org.springframework.web.reactive.result.view.ViewResolver> viewResolvers)
        Configure the ViewResolver to use for rendering views.
        Parameters:
        viewResolvers - the list of ViewResolvers to use
      • getErrorAttributes

        protected Map<String,​ObjectgetErrorAttributes​(org.springframework.web.reactive.function.server.ServerRequest request,
                                                              boolean includeStackTrace)
        Extract the error attributes from the current request, to be used to populate error views or JSON payloads.
        Parameters:
        request - the source request
        includeStackTrace - whether to include the error stacktrace information
        Returns:
        the error attributes as a Map.
      • getError

        protected Throwable getError​(org.springframework.web.reactive.function.server.ServerRequest request)
        Extract the original error from the current request.
        Parameters:
        request - the source request
        Returns:
        the error
      • isTraceEnabled

        protected boolean isTraceEnabled​(org.springframework.web.reactive.function.server.ServerRequest request)
        Check whether the trace attribute has been set on the given request.
        Parameters:
        request - the source request
        Returns:
        true if the error trace has been requested, false otherwise
      • renderErrorView

        protected reactor.core.publisher.Mono<org.springframework.web.reactive.function.server.ServerResponse> renderErrorView​(String viewName,
                                                                                                                               org.springframework.web.reactive.function.server.ServerResponse.BodyBuilder responseBody,
                                                                                                                               Map<String,​Object> error)
        Render the given error data as a view, using a template view if available or a static HTML file if available otherwise. This will return an empty Publisher if none of the above are available.
        Parameters:
        viewName - the view name
        responseBody - the error response being built
        error - the error data as a map
        Returns:
        a Publisher of the ServerResponse
      • renderDefaultErrorView

        protected reactor.core.publisher.Mono<org.springframework.web.reactive.function.server.ServerResponse> renderDefaultErrorView​(org.springframework.web.reactive.function.server.ServerResponse.BodyBuilder responseBody,
                                                                                                                                      Map<String,​Object> error)
        Render a default HTML "Whitelabel Error Page".

        Useful when no other error view is available in the application.

        Parameters:
        responseBody - the error response being built
        error - the error data as a map
        Returns:
        a Publisher of the ServerResponse
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        Exception
      • getRoutingFunction

        protected abstract org.springframework.web.reactive.function.server.RouterFunction<org.springframework.web.reactive.function.server.ServerResponse> getRoutingFunction​(org.springframework.boot.web.reactive.error.ErrorAttributes errorAttributes)
        Create a RouterFunction that can route and handle errors as JSON responses or HTML views.

        If the returned RouterFunction doesn't route to a HandlerFunction, the original exception is propagated in the pipeline and can be processed by other WebExceptionHandlers.

        Parameters:
        errorAttributes - the ErrorAttributes instance to use to extract error information
        Returns:
        a RouterFunction that routes and handles errors
      • handle

        public reactor.core.publisher.Mono<Voidhandle​(org.springframework.web.server.ServerWebExchange exchange,
                                                        Throwable throwable)
        Specified by:
        handle in interface org.springframework.web.server.WebExceptionHandler