JAX-RS 2.0验证

时间:2014-07-10 21:21:24

标签: java jax-rs

我正在读到以下验证应该适用于JAX-RS 2.0。

    public Response getEvent(@PathParam("lagdays")
                               @Pattern(regexp = "[0-7]", message = "Lag Days must be between 0 and 7")
                               Integer lagDays,
                               @Context HttpServletResponse res) {

但是,当我运行它时,我会收到以下信息

HV000030: No validator could be found for type: java.lang.Integer.

如何确定我所使用的JAX-RS版本?我查看了我的pom文件,我没有看到JAX-RS的任何内容。我使用的是Java 7。

我在想我不是在使用JAX-RS 2.0,或者我在某处有语法错误。

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-bean-validation</artifactId>
        <version>2.4.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

1 个答案:

答案 0 :(得分:3)

据我所知,@Pattern仅在CharSequence s(link)上有效。如果您希望自己的数字在某个范围内,请使用@Min@Max