我通过执行以下操作解决了这个问题(我认为这是Spring Boot问题)。
单独的Rest和Mvc控制器在这里查看我的问题:SpringMVC:在@ExceptionHandler上的@RequestStatus中获取i18n消息的原因
注入Jackson转换器并自己编写响应:
@ControllerAdvice(annotations = RestController.class) @Priority(1) @ResponseBody public class RestControllerAdvice { @Autowired private MappingJackson2HttpMessageConverter jacksonMessageConverter; @ExceptionHandler(RuntimeException.class) @ResponseStatus(value = HttpStatus.BAD_REQUEST) public void handleRuntimeException(HttpServletRequest request, HttpServletResponse response, RuntimeException exception) { try { jacksonMessageConverter.write(new MyRestResult(translateMessage(exception)), MediaType.APPLICATION_JSON, new ServletServerHttpResponse(response)); response.flushBuffer(); // Flush to commit the response } catch (IOException e) { e.printStackTrace(); } } }


