Java 泽西岛2号';行不通

Java 泽西岛2号';行不通,java,validation,jersey-2.0,Java,Validation,Jersey 2.0,我现在使用的是jersey2.13和spring4.X,无法让JerseyBean验证工作 以下是我的配置和代码片段: web.xml <servlet> <!-- jersey ServletContainer --> <servlet-name>jersey</servlet-name> <servlet-class>org.glassfish.jersey.servlet.Servl

我现在使用的是jersey2.13和spring4.X,无法让JerseyBean验证工作

以下是我的配置和代码片段:

web.xml

<servlet>
        <!-- jersey ServletContainer -->
        <servlet-name>jersey</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <!-- jersey  resource packages-->
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>
                com.wordnik.swagger.jaxrs.json,
                com.ghca.easyview.server.api.resource
            </param-value>
        </init-param>
        <!-- jersey  provider classnames-->
        <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
            <param-value>
                com.wordnik.swagger.jersey.listing.ApiListingResourceJSON,
                com.wordnik.swagger.jersey.listing.JerseyApiDeclarationProvider,
                com.wordnik.swagger.jersey.listing.JerseyResourceListingProvider
            </param-value>
        </init-param>
        <init-param>
            <param-name>jersey.config.server.wadl.disableWadl</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.ghca.easyview.server.api.context.JerseyApplication</param-value>
        </init-param>
        <!--  jersey beanValidation  -->
        <init-param>
            <param-name>jersey.config.beanValidation.enableOutputValidationErrorEntity.server</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
        <servlet-name>jersey</servlet-name>
        <url-pattern>/se/rest/*</url-pattern>
    </servlet-mapping>

    <!-- jersey swagger UI -->
    <servlet>
        <servlet-name>Jersey2Config</servlet-name>
        <servlet-class>com.wordnik.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
        <init-param>
            <param-name>api.version</param-name>
            <param-value>1.0.0</param-value>
        </init-param>
        <init-param>
            <param-name>swagger.api.basepath</param-name>
            <param-value>http://10.143.132.99:4000/api/se/rest</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>Bootstrap</servlet-name>
        <servlet-class>com.ghca.easyview.server.api.plugin.swagger.Bootstrap2</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
Person.java:

package com.ghca.easyview.server.api.request.validation.model;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;

public class Person {
    @NotNull
    private Integer id;
    @NotNull
    @Length(min = 2, max = 20)
    private String name;
    @Email(message = "{contact.wrong.email}", regexp = "[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}")
    private String email;
    @Pattern(message = "{contact.wrong.phone}", regexp = "[0-9]{3,9}")
    private String phone;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", email=" + email
                + ", phone=" + phone + "]";
    }
}

不确定为什么要禁用所有内容,但在测试之后,删除禁用属性可以使其正常工作

//property(CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE, true);
//property(ServerProperties.FEATURE_AUTO_DISCOVERY_DISABLE, true);
//property(ServerProperties.BV_FEATURE_DISABLE, true);

默认情况下,这些属性为false,这允许自动发现。您正在禁用它。

您好,是不是peeskillet?我说,嗯,对我来说很好。你真的有吗?是的我不知道。除了你所有的招摇过市的东西,我几乎有你有相同的配置,复制和粘贴你所有的类。当我保留这些属性时,它就不起作用了。当我删除它们时,它工作了,我得到了验证输出。这就是我能告诉你的。让我们来。嗨,皮斯基勒,我不能聊天吗?你有电子邮件吗?
package com.ghca.easyview.server.api.request.validation.model;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;

public class Person {
    @NotNull
    private Integer id;
    @NotNull
    @Length(min = 2, max = 20)
    private String name;
    @Email(message = "{contact.wrong.email}", regexp = "[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}")
    private String email;
    @Pattern(message = "{contact.wrong.phone}", regexp = "[0-9]{3,9}")
    private String phone;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", email=" + email
                + ", phone=" + phone + "]";
    }
}
//property(CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE, true);
//property(ServerProperties.FEATURE_AUTO_DISCOVERY_DISABLE, true);
//property(ServerProperties.BV_FEATURE_DISABLE, true);