当前位置: 首页 > 面试题库 >

Jersey / JAX-RS资源方法输入Bean验证

南宫俊逸
2023-03-14
问题内容

我正在通过DropWizard 0.7.1使用Jersey / JAX-RS公开RESTful服务端点。我所有的实体POJO都用JAX-
RS和Hibernate / JSR-303 bean验证注释进行了注释,如下所示:

public class Widget {
    @JsonProperty("fizz")
    @NotNull
    @NotEmpty
    private String fizz;     // Can't be empty or null

    @JsonProperty("buzz")
    @Min(value=5L)
    private Long buzz;       // Can't be less than 5

    // etc.
}

当资源方法接收到这些POJO之一作为输入时(实际上,DropWizard已经将HTTP实体JSON反序列化为一个Widget实例),我想根据Hibernate
/ Bean Validation注释对其进行验证:

@POST
Response saveWidget(@PathParam("widget") Widget widget) {
    // Does DropWizard or Jersey have something built-in to automagically validate the
    // 'widget' instance?
}

是否可以将DropWizard / Jersey配置为验证我的widget实例,而无需在这里编写任何验证代码?


问题答案:

@Valid之前添加,@PathParam以使用Jersey进行验证。

参见https://jersey.java.net/documentation/latest/bean-
validation.html#d0e12201

您可能需要做一些配置。



 类似资料:
  • 我正在通过DropWizard 0.7.1使用泽西/JAX-RS来公开RESTful服务endpoint。我已经用JAX-RS和HiberNate/JSR-303 bean验证注释注释了我所有的实体POJO,如下所示: 当资源方法接收到其中一个POJO作为输入时(在引擎盖下,DropWizard已经将HTTP实体JSON反序列化为

  • 例如,如果几个资源endpoint需要访问某个消息总线来处理请求,该怎么办?当然,当服务类本身不是资源但被资源使用时,有一些方法可以注册一个单例服务类并将其注入到资源中。 我看到的提供程序或自定义HK2绑定的所有示例都引用了资源。 我发现的最接近我所要找的是这个问题: 使用内置的Jersey依赖注入在Jersey 2中创建一个简单的单例类会遇到麻烦 请注意,编程方式将是最有用的,我没有使用xml文

  • 我正在进行一个示例项目,使用: JAX-RS(泽西2) JSR-303 Bean validaiton 泽西测试测试 Grizzly Http容器 杰克逊2.7.3 在添加@JsonIgnore和@JsonProperty之前,一切都按预期进行,在对对象属性执行bean验证时,我能够毫无问题地运行测试。通常情况下,“password”字段不应用于反序列化,所以我用@JsonIgnore标记了它的g

  • 我正在尝试构建一个RESTful web服务。该组件是对已包含多个servlet的现有Tomcat7Web应用程序的添加。我用的是泽西2.25。 我需要实例化一些与现有系统相关的组件(对象)。我希望在应用程序加载时这样做一次,然后从每个资源中读取它们。 和资源: 我不明白为什么我会得到这个例外: ServletException:一个MultiException有3个异常。他们是:1。org.gl

  • 问题内容: 在常规的Web应用程序中,我可以为各种路径(例如,身份验证,授权,错误,日志记录等)分配一系列过滤器。 好处是我编写servlet时专注于核心功能,而不必担心基础结构方面。我可以编写正交的,跨领域的过滤器以进行身份​​验证,授权等。然后,可以将它们编织到web.xml中。查看web.xml足以确保我的应用程序中没有漏洞。 在JAX-RS或Jersey中有可能吗?如果没有,我最好的选择是

  • 我们可以通过 实现创建JAX-RS示例。 为此,需要加载 jersey相关jar文件或使用Maven框架。 在这个例子中,我们使用jersey jar文件来实现JAX-RS jersey示例。 Jersey Jar文件下载网址:https://jersey.github.io/download.html 打开Eclipse,创建一个Web工程: restfuljersey,如下图所示 - JAX-