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.
So, does it mean that we have to explicitly define the JAX-RS provider in TomEE
?
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:[email protected]]
Sent: jeudi 30 mars 2017 12:47
To: [email protected]
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 <
[email protected]>:
> 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:[email protected]]
> Sent: jeudi 30 mars 2017 11:56
> To: [email protected]
> 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 <
> [email protected]>:
>
> > 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.