春季靴子休息以空的身体响应,除了在我的@ControllerAdvice中覆盖的例外情况
我有一个@ControllerAdvice扩展ResponserEntityExceptionHandler,作为我试图控制API调用工作流中引发的任何异常的标准响应。
没有控制器建议。我得到了由spring生成的基于HTML的通用响应,其中包含正确的响应标头。但是当我添加我的@ControllerAdvice时,Spring不会使用通用错误正文进行响应。正文为空,具有正确的响应标头
@Override
protected ResponseEntity<Object> handleMissingServletRequestParameter(MissingServletRequestParameterException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
String erroMessage = "Required Parameter: '"+ex.getParameterName()+"' was not available in the request.";
TrsApiError apiError = new ApiError(HttpStatus.BAD_REQUEST, erroMessage, ex, ApiErrorCode.INVALID_REQUEST);
return buildResponseEntity(apiError);
}
因此,现在,如果请求中缺少必需的参数,流可以很好地触发我的重写实现,并使用描述错误的JSON有效负载进行响应。但是,如果出现任何其他异常,如HttpMediaTypeNotAcceptableException,spring正在以空体响应。
在我添加建议之前,spring正在以通用错误响应进行响应。我是春季靴子生态系统的新手。需要帮助来了解这是否是实现集中式错误处理的更好方法的预期行为。