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

标签 java jersey dropwizard

我有一个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_pa​​ram 的请求时,我想返回一个错误。

阅读文档后,我想也许 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/

相关文章:

java - Eclipse 3.7、3.8 和 4.2 有什么区别?

java - FPS 锁定不精确

java - 如何在表的 Velocity 模板中使用 foreach

java - 解析 JSONArray 时出现的 Jersey 问题

jsp - 无法使用 Jersey 服务器加载 JSP 页面

java - 在 dropwizard 中启用 cors 不起作用

java - 一台机器上有多少个Spring Boot应用

java - 从数据库下载文件而不将其保存在服务器上

java - Dropwizard:使用 dhatim/dropwizard-sentry 时如何设置 Sentry 用户上下文 [已修复]

java - restful 服务 URL 中的分号截断其后的字符