2017-03-30 15:08 GMT+02:00 COURTAULT Francois <
francois.courta...@gemalto.com>:

> Hello Romain,
>
> All our JAX-RS endpoints are annotated by with @Consumes({
> MediaType.APPLICATION_JSON }) and /or  @Produces({
> MediaType.APPLICATION_JSON }).
> And no specific configuration has been done in order to set Jackson as the
> JAX-RS provider for our application.
>

Was @Consumers/@Produces on the @Provider (jackson), not your endpoint.


>
> So, does it mean that we have to explicitly define the JAX-RS provider in
> TomEE ?
>

No, scanning still works as requested by users so you can do something like
(pseudo code, didnt check it compiles):

@Provider
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class JsonProv<T> implements MessageBodyReader<T>,
MessageBodyWriter<T> {
 private final JacksonJsonProvider delegate = new JacksonJsonProvider();

 // delegate all methods
}

And that's it


> If yes, the right way to do that is to have an openejb-jar.xml in the war
> with the following content ?
> <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://www.openejb.org/openejb-jar/1.1";>
>     <pojo-deployment  class-name="jaxrs-application">
>         <properties>
>             cxf.jaxrs.providers = com.fasterxml.jackson.jaxrs.
> json.JacksonJsonProvider
>         </properties>
>     </pojo-deployment>
> </openejb-jar>
>
>
> Best Regards.
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> Sent: jeudi 30 mars 2017 12:47
> To: users@tomee.apache.org
> Subject: [+SPAM+]: Re: [+SPAM+]: Re: No issue with 7.0.2 but issue with
> 7.0.3 using @JsonProperty coming from jackson
>
> 2017-03-30 12:15 GMT+02:00 COURTAULT Francois <
> francois.courta...@gemalto.com>:
>
> > Hello Romain,
> >
> > Not sure to understand. TomEE 7.0.2 is JAX-RS 2.0 as well as TomEE
> > 7.0.3, right ?
> >
>
> Yes
>
>
> > What do you mean by "ensure jackson was set with application/json
> > mediatype" ?
> >
>
> By default TomEE uses Johnzon since first 7.0.0 release. It sets it as the
> least prioritized application/json provider to let the users use something
> else and the usage be quite smooth and automatic.
>
> Jackson doesn't respect this JAXRS constraint (yes JAXRS 1 -> JAXRS 2
> resolution got clarified...and broke even if it shouldnt have been). In 2
> words jackson uses */* which means the last one to use if none are
> matching. Since johnzon uses application/json (and application/*+json IIRC)
> then it is used cause matching the request where jackson doesnt.
>
> If you wrap jackson provider in a custom one changing this @Consumes and
> @Produces it will work automatically.
>
> Here is the bug
> https://github.com/FasterXML/jackson-jaxrs-json-provider/
> blob/master/src/main/java/com/fasterxml/jackson/jaxrs/json/
> JacksonJsonProvider.java#L55
> for memories
>
>
> >
> > We just use, as mentioned, Jackson annotations, we don't perform any
> > initialization at Jackson level in our code ?
> >
> > Best Regards.
> >
> > -----Original Message-----
> > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> > Sent: jeudi 30 mars 2017 11:56
> > To: users@tomee.apache.org
> > Subject: [+SPAM+]: Re: No issue with 7.0.2 but issue with 7.0.3 using
> > @JsonProperty coming from jackson
> >
> > Hi
> >
> > did you ensure jackson was set with application/json mediatype and not
> > its default */* which means "least prioritized" since JAXRS 2.0?
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog <
> > https://blog-rmannibucau.rhcloud.com> | Old Blog <
> > http://rmannibucau.wordpress.com> | Github
> > <https://github.com/rmannibucau>
> > | LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
> > | <
> > https://javaeefactory-rmannibucau.rhcloud.com>
> >
> > 2017-03-30 11:54 GMT+02:00 COURTAULT Francois <
> > francois.courta...@gemalto.com>:
> >
> > > Hello,
> > >
> > > We have a rest Api which uses POJO classes with Bean Validation
> > > annotations (like @Pattern, @NotNull) and Jackson annotations like
> > > @JsonProperty.
> > > Previously, using TomEE 7.0.2, we have no issue using the
> > > @JsonProperty Jackson annotation. Indeed, this kind of annotations
> > > was
> > taken into account.
> > >
> > > But when we migrate to 7.0.3, it seems that the @JsonProperty
> > > Jackson annotation is not anymore taking into account ☹ Is there any
> > > way to fix that ?
> > >
> > > Best Regards.
> > > ________________________________
> > >  This message and any attachments are intended solely for the
> > > addressees and may contain confidential information. Any
> > > unauthorized use or disclosure, either whole or partial, is prohibited.
> > > E-mails are susceptible to alteration. Our company shall not be
> > > liable for the message if altered, changed or falsified. If you are
> > > not the intended recipient of this message, please delete it and
> > > notify the
> > sender.
> > > Although all reasonable efforts have been made to keep this
> > > transmission free from viruses, the sender will not be liable for
> > > damages caused by a transmitted virus.
> > >
> > ________________________________
> >  This message and any attachments are intended solely for the
> > addressees and may contain confidential information. Any unauthorized
> > use or disclosure, either whole or partial, is prohibited.
> > E-mails are susceptible to alteration. Our company shall not be liable
> > for the message if altered, changed or falsified. If you are not the
> > intended recipient of this message, please delete it and notify the
> sender.
> > Although all reasonable efforts have been made to keep this
> > transmission free from viruses, the sender will not be liable for
> > damages caused by a transmitted virus.
> >
> ________________________________
>  This message and any attachments are intended solely for the addressees
> and may contain confidential information. Any unauthorized use or
> disclosure, either whole or partial, is prohibited.
> E-mails are susceptible to alteration. Our company shall not be liable for
> the message if altered, changed or falsified. If you are not the intended
> recipient of this message, please delete it and notify the sender.
> Although all reasonable efforts have been made to keep this transmission
> free from viruses, the sender will not be liable for damages caused by a
> transmitted virus.
>

Reply via email to