users@jersey.java.net

[Jersey] Re: Enabling bean validation

From: Oliver B. Fischer <mailsink_at_swe-blog.net>
Date: Wed, 23 Apr 2014 16:29:22 +0200

Hi Michal,

thanks for the hints. I called isEnabled() always in the ctor of the
application and now it is clear why it returnd false. Now I obtain the
configuration via

@Context Configuration config

Afterwards I can call config.isEnabled(ValidationFeature.class) and it
returns true. That is great.

One question more: How do I ensure that an entity will be validated
before it will be overhanded to a resource method? I use
jersey-media-json-jackson to map JSON to an annotated entity. But the
entity is never validated. At least it seams so to me. The class is
annotated with some @NotNull annotations but I never get constraint
validations.

BTW, the code is online at
https://bitbucket.org/obfischer/jersey-playground/src/0703ae28873a/beanvalidation-simple/src/main/java/net/sweblog/jerseyplayground/beanvalidationsimple/b/?at=master
available.

Thanks,

Oliver

Am 23.04.14 09:40, schrieb Michal Gajdos:
> Hi Oliver,
>
> where exactly are you trying to call isEnabled method? The method
> returns true if ValidationFeature is registered in an application (it's
> enough to add jersey-bean-validation on the class-path) AND the
> ValidationFeature has been processed (ValidationFeature.configure has
> been invoked - this happens during initialization of the app). This
> means that if you call isEnabled in ResourceConfig it would return false
> (ValidationFeature has not been processed). Similarly this the return
> value would be false if you call the method in Features that are
> processed BEFORE ValidationFeature. The method would return true when a
> request is processed (i.e. in resource method, filters, interceptors, ...).
>
> HTH,
> Michal
>
> On 23.04.2014, 08:50 , Oliver B. Fischer wrote:
>> Hi,
>>
>> I try to enable bean validation i a test application with Jersey 2.7.
>> I added org.glassfish.jersey.ext:jersey-bean-validation as dependency
>> and called
>>
>> register(ValidationFeature.class);
>>
>> But if I call
>>
>> isEnabled(ValidationFeature.class);
>>
>> it returns false.
>>
>> So what did I miss? According to the documentation Jersey will enable
>> bean validation if it finds the right dependencies in the classpath.
>>
>> BR, Oliver
>>
>