我有一个dropwizard应用程序和在一种资源中我希望有一个必需的查询参数。我知道 Jersey 支持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 的请求时,我想返回一个错误。
阅读文档后,我想也许 dropwizard 的配置就是原因。所以我将这段代码添加到我的应用程序的 run 方法中:
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
对象而不是原始类型?
关于java - jersey-dropwizard 上的资源查询参数验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988589/