我正在尝试使用@ControllerAdvice处理MethodArgumentNotValidException作为下面给出的代码:
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
private Logger log = LoggerFactory.getLogger(RestResponseEntityExceptionHandler.class);
@Autowired
private ApplicationContext applicationContext;
@ExceptionHandler({ ConstraintViolationException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorWrapper handleConstraintViolationException(ConstraintViolationException e) {
String fieldName = e.getConstraintName();
String message = getResourceMessage(fieldName + ".alreadyExists", "Already Exists");
return new ErrorWrapper(fieldName + ".error", message);
}
@ExceptionHandler({ MethodArgumentNotValidException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ErrorWrapper handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
return new ErrorWrapper(".error", "test");
}
private String getResourceMessage(String key, String defaultMessage) {
String message = applicationContext.getMessage(key, null, Locale.getDefault());
if (StringUtils.isNotEmpty(message)) {
return message;
} …Run Code Online (Sandbox Code Playgroud) spring-4 ×1