Class BroadleafSpringRestExceptionMapper

java.lang.Object
com.broadleafcommerce.rest.api.exception.BroadleafSpringRestExceptionMapper

public class BroadleafSpringRestExceptionMapper extends Object

Handles exceptions that can occur in the Broadleaf REST APIs. Specifically, this will serialize exceptions into consumable JSON or XML so that clients that utilize the API don't have to treat exception responses as special cases.

Author:
Chris Kittrell (ckittrell), Phillip Verheyden (phillipuniverse)
  • Field Details

    • messageKeyPrefix

      protected String messageKeyPrefix
    • messageSource

      protected org.springframework.context.MessageSource messageSource
    • context

      @Autowired protected org.springframework.context.ApplicationContext context
  • Constructor Details

    • BroadleafSpringRestExceptionMapper

      public BroadleafSpringRestExceptionMapper()
  • Method Details

    • handleBroadleafWebServicesException

      @ExceptionHandler(BroadleafWebServicesException.class) @ResponseBody public ErrorWrapper handleBroadleafWebServicesException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, BroadleafWebServicesException ex)
    • handleNoHandlerFoundException

      @ExceptionHandler(org.springframework.web.servlet.NoHandlerFoundException.class) @ResponseBody public ErrorWrapper handleNoHandlerFoundException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, org.springframework.web.servlet.NoHandlerFoundException ex)
    • handleHttpMediaTypeNotSupportedException

      @ExceptionHandler(org.springframework.web.HttpMediaTypeNotSupportedException.class) @ResponseBody public ErrorWrapper handleHttpMediaTypeNotSupportedException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, org.springframework.web.HttpMediaTypeNotSupportedException ex)
    • handleRequestMethodNotSupportedException

      @ExceptionHandler(org.springframework.web.HttpRequestMethodNotSupportedException.class) @ResponseBody public ErrorWrapper handleRequestMethodNotSupportedException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, org.springframework.web.HttpRequestMethodNotSupportedException ex)
    • handleMissingServletRequestParameterException

      @ExceptionHandler(org.springframework.web.bind.MissingServletRequestParameterException.class) @ResponseBody public ErrorWrapper handleMissingServletRequestParameterException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • handleMethodArgumentTypeMismatchException

      @ExceptionHandler(org.springframework.web.method.annotation.MethodArgumentTypeMismatchException.class) @ResponseBody public ErrorWrapper handleMethodArgumentTypeMismatchException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • handleHttpMessageNotReadableException

      @ExceptionHandler(org.springframework.http.converter.HttpMessageNotReadableException.class) @ResponseBody public ErrorWrapper handleHttpMessageNotReadableException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • handleMethodArgumentNotValidException

      @ExceptionHandler(org.springframework.web.bind.MethodArgumentNotValidException.class) @ResponseBody public ErrorWrapper handleMethodArgumentNotValidException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • handleMethodArgumentResolutionException

      @ExceptionHandler(org.springframework.messaging.handler.invocation.MethodArgumentResolutionException.class) @ResponseBody public ErrorWrapper handleMethodArgumentResolutionException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • handleInvalidEnumerationValueException

      @ExceptionHandler(InvalidEnumerationValueException.class) @ResponseBody public ErrorWrapper handleInvalidEnumerationValueException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • handleException

      @ExceptionHandler(java.lang.Exception.class) @ResponseBody public ErrorWrapper handleException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, Exception ex)
    • setMessageSource

      public void setMessageSource(org.springframework.context.MessageSource messageSource)
    • setMessageKeyPrefix

      public void setMessageKeyPrefix(String prefix)
      This key is the prefix that will be stripped off of all message keys that are returned to a client. The default is "org.broadleafcommerce.core.web.api.BroadleafWebServicesException.". So, if a message key contained in a BroadleafWebServicesException is org.broadleafcommerce.core.web.api.BroadleafWebServicesException.unknownError, just "unknownError" will be returned to the client. This behavior can be changed by overriding the resolveClientMessageKey method.
      Parameters:
      prefix -
    • resolveResponseStatusCode

      protected int resolveResponseStatusCode(Throwable t, ErrorWrapper error)
    • resolveClientMessageKey

      protected String resolveClientMessageKey(String key)