Boa Tarde, estou com uma situação onde está sendo tratada a exception, mas no momento do retorno ela não retorna a response nem o HTTP Status Code definido, retornando 403 Forbidden ao invés do Status Code mapeado.
Exception logs:
org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation ... com.br.med.voll.api.exception.InexistentEntityException: Paciente Inexistente na Base de Dados!
Debug do erro capturado no ControllerAdvice:
Meu método de Exception onde o debug foi realizado:
@ExceptionHandler({InexistentEntityException.class, DataIntegrityViolationException.class})
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity badRequest(Exception e){
ErrorHandlerDTO errorHandlerDTO = new ErrorHandlerDTO(HttpStatus.BAD_REQUEST, e);
return ResponseEntity.badRequest().body(errorHandlerDTO);
}
A Controller:
@RestController
@RequestMapping("consults")
public class ConsultController {
@Autowired
private ConsultServiceImpl consultService;
@PostMapping
public ResponseEntity schedule(
@RequestBody
@Valid
ConsultScheduleRequestDTO consultScheduleRequestDTO,
UriComponentsBuilder uriComponentsBuilder
){
ConsultScheduleResponseDTO responseDTO = consultService.schedule(consultScheduleRequestDTO);
URI uri = uriComponentsBuilder.path("/consults/{consult_id}").buildAndExpand(responseDTO.consultId()).toUri();
return ResponseEntity.created(uri).body(responseDTO);
}
}