当前位置: 首页 > 知识库问答 >
问题:

Jersey bean验证-返回错误请求的验证消息

丁振海
2023-03-14

对于错误的响应,是否可能在响应中返回验证注释消息?我认为这是可能的,但我注意到我们的项目没有给出详细的不良请求信息。

@NotNull(message="idField is required")
@Size(min = 1, max = 15) 
private String idField;

如果请求缺少IDField,我希望返回“IDField is required”。我用的是泽西2.0。我看到的回应是...

{
  "timestamp": 1490216419752,
  "status": 400,
  "error": "Bad Request",
  "message": "Bad Request",
  "path": "/api/test"
}

共有1个答案

呼延哲
2023-03-14

看起来您的Bean验证异常(ConstraintViolationException)是由您的一个ExceptionMapper翻译的。您可以为ConstraintViolationException注册ExceptionMapper,如下所示,并以所需格式返回数据。ConstraintViolationException具有要查找的所有信息。

@Singleton
@Provider
public class ConstraintViolationMapper implements ExceptionMapper<ConstraintViolationException> {

  @Override
  public Response toResponse(ConstraintViolationException e) {
    // There can be multiple constraint Violations
    Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
    List<String> messages = new ArrayList<>();
    for (ConstraintViolation<?> violation : violations) {
        messages.add(violation.getMessage()); // this is the message you are actually looking for

    }
    return Response.status(Status.BAD_REQUEST).entity(messages).build();
  }

}
 类似资料:
  • 问题内容: 这段代码 给我这个错误 我对SSL几乎一无所知,但我曾尝试下载该站点的证书并使用该选项指向该文件,但是它没有用。我想念什么吗? 问题答案: 正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是: 该服务器的证书链不完整。等级上限为B。 这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书

  • 问题内容: 非常奇怪的错误。我使用的是http://developers.facebook.com/docs/authentication/。所以我创建了对fb的请求并传递redirect_uri。我在本地主机上使用测试站点。所以如果我通过 redirect_uri = http://localhost/test_blog/index.php 它工作正常,但如果我通过 redirect_uri =

  • 我有一个设置为接收来自WooCommerce的网络钩子的Rails应用程序。具体来说,我正在寻找创建订单的时间。我已经测试并验证了它在我protect_from_forgery时是否有效,除了创建。现在我正在尝试通过验证网络钩子来保护我的应用程序。WooCommerce的留档声明在请求标头中传递以下秘密: 秘密:一个可选的密钥,用于生成请求正文的HMAC-SHA256哈希,以便接收者可以验证Web

  • 我有一个简单的登录模型类,几乎没有数据注释验证 View是一个部分View,如下所示: 我相信我已经做了验证消息显示所需的所有事情,但它没有,客户端验证也没有。在母版页的头部区域,我还包括了以下脚本 是什么导致了这个问题?解决办法是什么?

  • 我得到了一个使用fcm发送通知的应用程序,当我通过控制台发送消息时一切正常,但是当我尝试通过php(curl-post)或postman(firefox扩展)发送消息时,我得到了一个身份验证错误(甚至使用了密钥) 字符串(304)“{”错误:{”代码:401,“消息”:“请求缺少所需的身份验证凭据。应为OAuth 2访问令牌、登录cookie或其他有效身份验证凭据。请参阅https://devel