users@jersey.java.net

[Jersey] Entity Validation

From: Bob Krier <rkrier_at_axway.com>
Date: Thu, 24 Oct 2013 19:01:48 +0000

Hi Everyone,

I'm unclear about setting up entity validation. To give you some foreground, our app runs embedded Jetty with Jersey as a REST provider (2.3.1). I have a Annotation defined as follows.

@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = BeanValidation.Validator.class)
public @interface BeanValidation
{
String message() default "{com.axway.constraint.Some.message}";
Class[] groups() default {};
Class[] payload() default {};

public class Validator implements ConstraintValidator<BeanValidation, Object>
{
@Override
public void initialize(final BeanValidation bean)
{
}

@Override
public boolean isValid(final Object bean, final ConstraintValidatorContext constraintValidatorContext)
{
AnnotationValidator validator = new AnnotationValidator();
List<ResponseMessage> messages = validator.doValidate(bean); // Todo – return true or false depending on the outcome.
return true;
}
}
}

I have my resource defined like this:

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public OrganizationBean addOrganization(@BeanValidation OrganizationBean bean)
{
return ….;
}


Here is my web.xml:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.axway.rest.api.v1.resources;com.axway.rest.api.v1.mappers.exceptions;com.axway.rest.tools.resolvers;com.axway.rest.api</param-value>
</init-param>
<init-param>
<param-name>api.version</param-name>
<param-value>0.1</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
.
.
.



When I execute the POST, the BeanValidation.Validator is not executed (have a break point on the "isValidMethod"). Is there a step I'm missing?

Regards,

Bob