2016-01-29 2 views
3

Je suis conscient que je dois manquer un point vraiment fondamental. La méthode de ressource suivante:Comment activer la validation du bean avec Jax RS dans TomEE 7.0.0-M1?

@GET 
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
public TestObject getObj(@QueryParam("m") String m, 
         @Min(30) @NotNull @QueryParam("d") Double d) { 
    return new TestObject(m,m,d); 
} 

fonctionne comme prévu dans Glassfish4 (i.e. retourne 400 Bad Request), mais dans tomee 7.0.0-M1 (jee7), il ne tient pas compte des annotations de validation, et répond avec 200 OK. J'ai essayé de paramétrer la propriété (bien que dans TomEE 7 il soit activé par défaut), toujours rien.

org.apache.openejb.default.system.interceptors = org.apache.openejb.bval.BeanValidationAppendixInterceptor 

Que manque-t-il ici?

+0

Après avoir défini cette propriété, ou à l'aide tomee 7.0-M1 aurait dû faire l'affaire. Votre problème doit être ailleurs. –

+0

C'est ce que j'espérais ... Je n'ai toujours pas trouvé de solution – kosta

Répondre

-1

Vous devez ajouter @Singleton ou une annotation @Stateless dans la ressource JAX-RS pour que les validations du bean se produisent. Dans le cas de CXF pour les ressources non Singleton/non EJB, org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInvoker doit être enregistré si ces objets doivent être validés.

0

En M1 Je pense que vous devez ajouter @ValidateOnExecution sur la méthode, les derniers communiqués ont fixé il IIRC