Resteasy Bean Validation wird nicht aufgerufen
Ich habe einen Resteasy-Service, der Spring through Resteasy's verwendetSpringContextLoaderListener
. Dies basiert auf der Resteasy-Version3.0-beta-6
.
Ich möchte die Bean-Validierung für die eingehenden Anforderungen verwenden, kann aber Resteasy nicht zum Aufrufen des Validators auffordern. Es verhält sich so, als wäre keine Validierung konfiguriert und übergibt der Methode einfach das ungültige Eingabeobjekt.
FrageWie aktiviere ich die Bean-Validierung in Resteasy?Was ich versucht habeIch habe folgendes getan:
Hat meine Ressourcenklasse mit kommentiert@ValidateRequest
Kommentierte den Methodenparameter mit@Valid
Die Einschränkungen für meine Eingabeklasse wurden mit Anmerkungen versehen.Es wurde eine Abhängigkeit von hinzugefügtresteasy-hibernatevalidator-provider
Ressource:@Named
@Path("users")
@ValidateRequest
public class UserResource
{
/**
*
* @param user
*
* curl -x POST http://localhost:7016/api/1.0/users
*
*/
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response createUser(@Valid User user)
{
//User creation logic here.
}
}
Benutzer POJO:@JsonPropertyOrder({
"user_id",
"user_name",
"email"
})
public class User
{
@JsonProperty("user_id")
private Long userId;
@JsonProperty("user_name")
@NotNull(message = "Username must be provided")
private String username;
@Email(message = "Invalid email address.")
private String email;
//Getters and Setters Removed for Brevity
}
POM-Eintrag zur Validierung: <dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-hibernatevalidator-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
Dasresteasy-hibernatevalidator-provider
Abhängigkeit bringt in derHibernateValidatorContextResolver
und die damit verbundenenHibernateValidatorAdapter
.
Ich habe die Resteasy-Version in meinem Pom auf zurückgesetzt2.3.5.Final
und die Bean-Validierung funktionierte ohne Codeänderungen.