【问题标题】:Prevent a InternalServerErrror while using BeanValidation使用 Bean 验证时防止内部服务器错误
【发布时间】:2015-11-04 15:22:07
【问题描述】:

我正在使用 BeanValidation(使用 DropWizzard)。现在,如果一个表单包含一个用 @NotEmpty 注释的字段,但它是空的,我会得到一个状态码为 500 的 InternalServer ErrorException。 我想为此记录一个 RuntimeException 并将用户转发到错误页面。

是否可以在一个地方捕获所有 ValidationException,记录它们并执行诸如转发用户之类的操作?

【问题讨论】:

    标签: java validation bean-validation dropwizard


    【解决方案1】:

    您可以为 ValidationException 构建自己的异常映射器。 Jersey 有自己的 ValidationExceptionMapper 实现,如果元素是经过验证的参数,则该实现将返回错误请求;如果在返回值上进行验证,则会返回内部服务器错误。最新版本的 Dropwizard 应该默认配置这些映射器。

    要构建自己的异常映射器,您应该实现接口 javax.ws.rs.ext.ExceptionMapper 并将其注册到 Dropwizard 的球衣上下文中,即environment.jersy().register(MyExceptionMapper.class)如果您使用 Dropwizard 0.8 或更高版本

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多