Java验证约束:如何向客户端发送验证错误

时间:2018-02-27 13:09:40

标签: java rest validation constraints

假设我有以下API:

@Path("/api")
public Response api(@Valid @NotNull(message = "In cannot be null") String in) {
    return Response.ok().build();
}

当客户端发送Null String时,他得到的唯一响应是:" Bad Request(400)"

如何使用上述消息发送响应?或者甚至在我的服务器中记录消息?

2 个答案:

答案 0 :(得分:0)

您可以使用entity发送错误的特定邮件。

Response.status(errorMessage.getStatus())
                    .entity(message)
                    .type(MediaType.APPLICATION_JSON)
                    .build();

答案 1 :(得分:0)

我看了下面的泽西植入后解决了这个问题:

https://github.com/jersey/jersey/blob/master/ext/bean-validation/src/main/java/org/glassfish/jersey/server/validation/internal/ValidationExceptionMapper.java

显然 jersey.config.beanValidation.enableOutputValidationErrorEntity.server

必须将

属性设置为true(在web.xml中):

 <init-param>
        <param-name>jersey.config.beanValidation.enableOutputValidationErrorEntity.server</param-name>
        <param-value>true</param-value>
 </init-param>