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

问题描述 投票:1回答:2

假设我有以下API:

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

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

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

java rest validation constraints
2个回答
0
投票

您可以使用entity发送错误的特定消息。

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

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

property必须设置为true(在web.xml中):

 <init-param>
        <param-name>jersey.config.beanValidation.enableOutputValidationErrorEntity.server</param-name>
        <param-value>true</param-value>
 </init-param>
© www.soinside.com 2019 - 2024. All rights reserved.