jersey-dropwizard 上的资源查询参数验证

Resource query parameter validation on jersey-dropwizard

我有一个 dropwizard application and in one resource i would like to have a required query parameter. I know jersey supports bean validation,所以我尝试使用 @NotNull 注释,但它不起作用。这是资源代码:

@Path("/resource/{id}")
@Produces(MediaType.APPLICATION_JSON)
public class MyResource {
    //....constructor...

    @GET
    public String test(
        @PathParam("id") long id,
        @NotNull @QueryParam("required_param") long param) {
        //....
    }
}

万一不清楚,我想发生的是每当客户端发送不带参数的请求时 required_param 我想 return 一个错误。

阅读文档后,我认为可能是 dropwizard 的配置问题。所以我将这段代码添加到我的应用程序的 运行 方法中:

environment.jersey().property("jersey.config.disableAutoDiscovery", false);
environment.jersey().property("jersey.config.server.disableAutoDiscovery", false);
environment.jersey().property("jersey.config.beanValidation.disable.server", false);

不幸的是,这也不起作用。任何人都知道如何做到这一点?

您是否尝试过使用 Long 对象而不是原始类型?