java - spring mvc 验证异常不由 ControllerAdvice 处理

标签 java spring-mvc spring-boot error-handling

我在 spring boot 应用程序中有一个 Controller ,它使用 Hibernate Validator 验证输入。每当我调用 rest 端点时,它都会正确验证,但我的 Controller 建议没有捕捉到它来自定义消息。我们只得到带有空负载的 404 代码。

@RestController
public class Controller {

    @RequestMapping(method = RequestMethod.POST, path = RestPaths.LOAD_DATA)
    public void loadCostCenterData(@RequestBody @Valid ClientDto dto) {
    }
}

@RestControllerAdvice
public class WickesGlobalExceptionMapper extends ResponseEntityExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity handleOtherUnexpectedException(Exception ex, WebRequest request) {
    }

}

最佳答案

这是一个使用 ModelView 而不是 ResponseEntity 的有效 ControllerAdvise:

@ControllerAdvice
public class WickesGlobalExceptionMapper {

  @ExceptionHandler(IllegalArgumentException.class)
  @ResponseStatus(HttpStatus.BAD_REQUEST)
  public ModelAndView handleInvalidArgument(IllegalArgumentException ex) {
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setView(new MappingJackson2JsonView());
    modelAndView.addObject("errorMessage", format("{0}", errorMessage));
    return modelAndView;
  }
}

关于java - spring mvc 验证异常不由 ControllerAdvice 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44654390/

相关文章:

java - 使用 PHP 解码 Java 的 JSON Unicode 值

java - 如何将字符串中的 double 据转换为在 android studio 上的 TextView 上设置

java - 如何使用gradle在同一文件夹中的多个文件中编译单个java文件?

java - 运行 spring-boot-maven-plugin 配置的 fat JAR 时出现 ClassNotFoundException

java - 从 CMS 切换到 G1 垃圾收集器

java - 启用 ssl 的 spring mvc - 没有可用的 session 属性

spring-mvc - 如何找到招摇的路径

css - 我可以在 SPRING 3 MVC 元素中显示图像

java - 无法从 https :maven-surefire-plugin:pom:2. maven.apache.org/maven2 传输 org.apache.maven.plugins ://repo. 22.2

java - 使用 Autowiring 时,抽象类对象的子类为 null