Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.github.mengweijin.quickboot.exception.BaseResponseEntityExceptionHandler Maven / Gradle / Ivy
package com.github.mengweijin.quickboot.exception;
import com.github.mengweijin.quickboot.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.ConversionNotSupportedException;
import org.springframework.beans.TypeMismatchException;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.HttpMediaTypeNotAcceptableException;
import org.springframework.web.HttpMediaTypeNotSupportedException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.MissingPathVariableException;
import org.springframework.web.bind.MissingServletRequestParameterException;
import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.context.request.async.AsyncRequestTimeoutException;
import org.springframework.web.multipart.support.MissingServletRequestPartException;
import org.springframework.web.servlet.NoHandlerFoundException;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
import java.util.List;
/**
* @author mengweijin
*/
@Slf4j
public abstract class BaseResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
/**
* create error info
*
* @param e Throwable
* @param status HttpStatus
* @return ResponseEntity
*/
public ResponseEntity errorResponseEntity(Exception e, HttpStatus status) {
log.error(e.getMessage(), e);
return ResponseEntity.status(status).body(R.info(status.value(), null, e.getMessage()));
}
/**
* response binding result response entity
*
* @param e Throwable
* @param bindingResult bindingResult
* @param status HttpStatus
* @return ResponseEntity
*/
public ResponseEntity errorBindingResultResponseEntity(Exception e, BindingResult bindingResult, HttpStatus status) {
log.error(e.getMessage(), e);
final List fieldErrors = bindingResult.getFieldErrors();
R r = R.error(status.value(), null);
for (FieldError error : fieldErrors) {
r.appendMessage(error.getField() + ": " + error.getDefaultMessage() + "!");
}
log.error("ErrorInfo: {}", r);
return ResponseEntity.status(status).body(r);
}
@Override
protected ResponseEntity handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleHttpMediaTypeNotSupported(HttpMediaTypeNotSupportedException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleHttpMediaTypeNotAcceptable(HttpMediaTypeNotAcceptableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleMissingPathVariable(MissingPathVariableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleMissingServletRequestParameter(MissingServletRequestParameterException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleServletRequestBindingException(ServletRequestBindingException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleConversionNotSupported(ConversionNotSupportedException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleTypeMismatch(TypeMismatchException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleHttpMessageNotWritable(HttpMessageNotWritableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorBindingResultResponseEntity(ex, ex.getBindingResult(), status);
}
@Override
protected ResponseEntity handleMissingServletRequestPart(MissingServletRequestPartException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleBindException(BindException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorBindingResultResponseEntity(ex, ex.getBindingResult(), status);
}
@Override
protected ResponseEntity handleNoHandlerFoundException(NoHandlerFoundException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
return errorResponseEntity(ex, status);
}
@Override
protected ResponseEntity handleAsyncRequestTimeoutException(AsyncRequestTimeoutException ex, HttpHeaders headers, HttpStatus status, WebRequest webRequest) {
return errorResponseEntity(ex, status);
}
}