Olá, estou validando os campos da requisição na chamada de um microserviço usando Spring Cloud, os campos até são validados, porém a minha classe com o @RestControllerAdvice não está conseguindo pegar o "MethodArgumentNotValidException", em projetos com Spring Cloud é necessario alguma configuração adcional ?
"@RestController @RequestMapping("/compra") public class CompraController {
@Autowired
private CompraService compraService;
@RequestMapping(method = RequestMethod.POST)
public Compra realizaCompra(@RequestBody @Valid CompraDTO compra) {
return compraService.realizaCompra(compra);
}
}"
"@RestControllerAdvice public class ErroDeValidacaoHandler {
@Autowired
private MessageSource messageSource;
@ResponseStatus(code = HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public List<ErroFormDto> handle(MethodArgumentNotValidException exception) {
List<ErroFormDto> dto = new ArrayList<>();
List<FieldError> fieldErrors = exception.getBindingResult().getFieldErrors();
fieldErrors.forEach(e -> {
String mensagem = messageSource.getMessage(e, LocaleContextHolder.getLocale());
ErroFormDto erro = new ErroFormDto(e.getField(), mensagem);
dto.add(erro);
});
return dto;
}
}"
"package br.com.alura.microservice.validacao;
public class ErroFormDto {
private String campo;
private String erro;
public ErroFormDto(String campo, String erro) {
this.campo = campo;
this.erro = erro;
}
public String getCampo() {
return campo;
}
public void setCampo(String campo) {
this.campo = campo;
}
public String getErro() {
return erro;
}
public void setMessage(String erro) {
this.erro = erro;
}
} "