Dropwizard验证不起作用

时间:2015-08-11 19:07:33

标签: validation dropwizard

环境:Dropwizard 0.8.1,Java 1.8

我无法获得Dropwizard的验证支持。我相信我会按照手册的建议进行操作。例如,使用以下资源(以及在模型类属性上使用@Valid的变体,使用@Validated而不是@Valid,hibernate' s @NotEmpty而不是javax.validation.constraints.NotNull等):

@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class TestResource {
    static public class ModelClass {
        @JsonProperty("only_null") @Null public String onlyNull;
        @JsonProperty("not_null") @NotNull public String notNull;
    }

    @PUT
    public ModelClass testContainer(@Valid ModelClass record) {
        return record;
    }
}

如果我提出以下内容:

{"only_null":"shouldFail"}

而不是预期的422,我回来了:

{"only_null":"shouldFail","not_null":null}

我在这里缺少什么?是否有一些配置需要打开以启用我错过的验证?

1 个答案:

答案 0 :(得分:1)

您的代码适合我。我使用了以下注释:

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;

仔细检查您发送请求的方式。我使用curl发送请求:

$ curl -v -X PUT 'http://localhost:8080/test' -H 'Content-Type: application/json' -d '{"only_null":"shouldFail"}'
< HTTP/1.1 422
{"errors":["notNull may not be null (was null)","onlyNull must be null (was shouldFail)"]}