Do you see it listed in the providers i startup logs? it should be sorted
and johnzon is after user providers if they have the same media type.

All the dicussion we had was for server providers, for client ones you need
to register it on the client.


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>

2016-11-17 19:39 GMT+01:00 jieryn <[email protected]>:

> Ok, I see what you mean, but Johnzon is still getting invoked even
> after I subclassed the JacksonJsonProvider and coded the
> @Produces/@Consumes with specific media types.
>
> public abstract class MyJacksonProviderApplication extends Application {
>   @Override
>   public Set<Object> getSingletons() {
>     return Collections
>         .singleton((Object) new MyJacksonJsonProvider(new ObjectMapper()));
>   }
> }
>
> @Provider
> @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
> @Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
> public class MyJacksonJsonProvider extends JacksonJsonProvider
> {
>   public MyJacksonJsonProvider() {
>     super();
>   }
>
>   public MyJacksonJsonProvider(final Annotations... annotationsToUse) {
>     super(annotationsToUse);
>   }
>
>   public MyJacksonJsonProvider(final ObjectMapper mapper) {
>     super(mapper);
>   }
>
>   public MyJacksonJsonProvider(final ObjectMapper mapper,
>       final Annotations[] annotationsToUse) {
>     super(mapper, annotationsToUse);
>   }
> }
>
> still Johnzon is getting invoked here:
>
> testGet1(MyResourceTest)  Time elapsed: 0.498 sec  <<< ERROR!
> javax.ws.rs.client.ResponseProcessingException: Problem with reading
> the data, class My, ContentType: application/json.
>         at MyResourceTest.testGet1(MyResourceTest.java)
> Caused by: org.apache.johnzon.mapper.MapperException: Unable to parse
> 0 to class java.util.Date
>
> Even with src/main/webapp/WEB-INF/openejb-jar.xml in the Arquillian web
> archive:
>
> <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1";>
>   <pojo-deployment class-name="jaxrs-application">
>     <properties>
>       cxf.jaxrs.providers = com.acme.project.api.MyJacksonJsonProvider
>     </properties>
>   </pojo-deployment>
> </openejb-jar>
>
>
> Is there some way I can just disable Johnzon?
>
>
> On Thu, Nov 17, 2016 at 12:43 PM, Romain Manni-Bucau
> <[email protected]> wrote:
> > then add it too ;)
> >
> > point is to not use the default jackson one which is */*
> >
> > */* = lower priority ever
> >
> >
> > 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>
> >
> > 2016-11-17 18:43 GMT+01:00 jieryn <[email protected]>:
> >
> >> I have to support application/xml too though.
> >>
> >> On Thu, Nov 17, 2016 at 12:39 PM, Romain Manni-Bucau
> >> <[email protected]> wrote:
> >> > replace jackson provider by:
> >> >
> >> > @Provider
> >> > @Consumes("application/json")
> >> > @Provides("application/json")
> >> > public class MyProvider extends JacksonXXXProvider {}
> >> >
> >> > And register this provider instead of jackson one
> >> >
> >> >
> >> >
> >> > 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>
> >> >
> >> > 2016-11-17 18:37 GMT+01:00 jieryn <[email protected]>:
> >> >
> >> >> I think I am doing that, sorry I didn't include it..
> >> >>
> >> >> import javax.xml.bind.annotation.*;
> >> >> import javax.ejb.*;
> >> >> import javax.ws.rs.*;
> >> >> import javax.ws.rs.core.*;
> >> >>
> >> >> @XmlAccessorType(XmlAccessType.FIELD)
> >> >> @XmlRootElement
> >> >> public class My
> >> >> {
> >> >>   private String message;
> >> >>   public final String getMessage() {
> >> >>     return message;
> >> >>   }
> >> >>   public final void setMessage(final String message) {
> >> >>     this.message = message;
> >> >>   }
> >> >> }
> >> >>
> >> >> @Path("my")
> >> >> @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
> >> >> @Singleton
> >> >> public class MyResource
> >> >> {
> >> >>   @GET
> >> >>   public My get() {
> >> >>       return new My("thing-1");
> >> >>   }
> >> >> }
> >> >>
> >> >>
> >> >> ...can I just disable Johnzon with some configuration file under
> >> >> src/main/tomee/conf/? or src/main/webapp/WEB-INF/?
> >> >>
> >> >>
> >> >> On Thu, Nov 17, 2016 at 12:28 PM, Romain Manni-Bucau
> >> >> <[email protected]> wrote:
> >> >> > 2016-11-17 18:12 GMT+01:00 jieryn <[email protected]>:
> >> >> >
> >> >> >> Yah, I am hard forcing the JacksonJsonProvider:
> >> >> >>
> >> >> >> import java.util.*;
> >> >> >> import javax.ws.rs.ApplicationPath;
> >> >> >> import javax.ws.rs.core.Application;
> >> >> >> import com.fasterxml.jackson.databind.ObjectMapper;
> >> >> >> import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
> >> >> >>
> >> >> >> public abstract class JacksonProviderApplication extends
> Application
> >> {
> >> >> >>   public Set<Object> getSingletons() {
> >> >> >>     return Collections.singleton((Object) new
> JacksonJsonProvider(new
> >> >> >> ObjectMapper()));
> >> >> >>   }
> >> >> >> }
> >> >> >>
> >> >> >> @ApplicationPath("api")
> >> >> >> public class API extends JacksonProviderApplication {
> >> >> >>   public Set<Class<?>> getClasses() {
> >> >> >>     return Collections.unmodifiableSet(new
> HashSet<Class<?>>(Arrays.
> >> >> >> asList(
> >> >> >>         com.acme.project.api.MyResource.class)));
> >> >> >>   }
> >> >> >> }
> >> >> >>
> >> >> >>
> >> >> >> But in the stack trace in original, Johnzon is the one doing the
> >> >> >> serializing..why?? I accept Jackson may have some bugs that
> Johnson
> >> >> >> fixes, but right now I just need to get Jackson back in place so
> all
> >> >> >> of our web/js stuff continues to work right. Any ideas?
> >> >> >>
> >> >> >>
> >> >> > Read again my answer, I'm not telling you to not use jackson but
> how
> >> to
> >> >> > make it work. Enforce for the jackson provider the
> consumers/produces
> >> >> > annotations to be application/json to let jackson have the same
> >> priority
> >> >> as
> >> >> > johnzon and be used instead otherwise johnzon being more specific
> is
> >> >> > prioritized over jackson.
> >> >> >
> >> >> >
> >> >> >>
> >> >> >> On Fri, Nov 11, 2016 at 4:03 PM, Romain Manni-Bucau
> >> >> >> <[email protected]> wrote:
> >> >> >> > Hi
> >> >> >> >
> >> >> >> > Jackson is buggy in its consumes/produces type. Wrap the
> provider
> >> >> forcing
> >> >> >> > it to application/json lr other but not wildcard
> >> >> >> >
> >> >> >> > Le 11 nov. 2016 21:50, "jieryn" <[email protected]> a écrit :
> >> >> >> >
> >> >> >> >> Hi, I'm hitting another migration issue. With 1.7, we see these
> >> >> >> providers:
> >> >> >> >>
> >> >> >> >> INFO: Using providers:
> >> >> >> >> Nov 11, 2016 3:43:19 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> configureFactory
> >> >> >> >> INFO:      com.fasterxml.jackson.jaxrs.
> json.JacksonJsonProvider@
> >> >> >> 3703a400
> >> >> >> >> Nov 11, 2016 3:43:19 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> configureFactory
> >> >> >> >> INFO:      com.fasterxml.jackson.jaxrs.
> json.JacksonJsonProvider@
> >> >> >> 735167e1
> >> >> >> >> Nov 11, 2016 3:43:19 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> configureFactory
> >> >> >> >> INFO:      org.apache.openejb.server.cxf.
> >> >> rs.EJBAccessExceptionMapper@
> >> >> >> >> 22105c76
> >> >> >> >> Nov 11, 2016 3:43:19 PM org.apache.cxf.jaxrs.utils.
> ResourceUtils
> >> >> >> >> checkMethodDispatcher
> >> >> >> >> WARNING: No resource methods have been found for resource class
> >> >> >> >> com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
> >> >> >> >> Nov 11, 2016 3:43:19 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> logEndpoints
> >> >> >> >>
> >> >> >> >> With 7.0.1, we see these:
> >> >> >> >>
> >> >> >> >> INFO: Using readers:
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> >> PrimitiveTextProvider@629fe84
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> >> FormEncodingProvider@147c4523
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> MultipartProvider@551725e4
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> SourceProvider@760d6350
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> >> JAXBElementProvider@5cb6b81b
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.openejb.server.cxf.rs.CxfRSService$
> >> >> >> >> TomEEJsonpProvider@ab2e887
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> StringTextProvider@4daead88
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      com.fasterxml.jackson.jaxrs.
> json.JacksonJsonProvider@
> >> >> >> 6b04689e
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> BinaryDataProvider@43aa767
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> DataSourceProvider@5b3c11ce
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO: Using writers:
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> StringTextProvider@4daead88
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> >> PrimitiveTextProvider@629fe84
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> >> FormEncodingProvider@147c4523
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> MultipartProvider@551725e4
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> SourceProvider@760d6350
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> >> JAXBElementProvider@5cb6b81b
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.openejb.server.cxf.rs.CxfRSService$
> >> >> >> >> TomEEJsonpProvider@ab2e887
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      com.fasterxml.jackson.jaxrs.
> json.JacksonJsonProvider@
> >> >> >> 6b04689e
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> BinaryDataProvider@43aa767
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >> INFO:      org.apache.cxf.jaxrs.provider.
> >> DataSourceProvider@5b3c11ce
> >> >> >> >> Nov 11, 2016 3:45:53 PM
> >> >> >> >> org.apache.openejb.server.cxf.rs.CxfRsHttpListener
> >> deployApplication
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> This is causing problems for all of our arquillian tests:
> >> >> >> >>
> >> >> >> >> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:
> >> 6.804
> >> >> >> >> sec <<< FAILURE! - in com.acme.project.api.MyObjResourceITest
> >> >> >> >> testGETMyObj1(com.acme.project.api.MyObjResourceITest)  Time
> >> >> elapsed:
> >> >> >> >> 0.427 sec  <<< ERROR!
> >> >> >> >> javax.ws.rs.client.ResponseProcessingException: Problem with
> >> reading
> >> >> >> >> the data, class com.acme.project.domain.jaxb.MyObj,
> ContentType:
> >> >> >> >> application/json.
> >> >> >> >>         at com.acme.project.api.MyObjResourceITest.
> testGETMyObj1(
> >> >> >> >> MyObjResourceITest.java)
> >> >> >> >> Caused by: org.apache.johnzon.mapper.MapperException: Unable
> to
> >> >> parse
> >> >> >> >> 1478897152352 to class java.util.Date
> >> >> >> >>         at com.acme.project.api.MyObjResourceITest.
> testGETMyObj1(
> >> >> >> >> MyObjResourceITest.java)
> >> >> >> >> Caused by: org.apache.johnzon.mapper.MapperException: Unable
> to
> >> >> parse
> >> >> >> >> 1478897152352 to class java.util.Date
> >> >> >> >>         at com.acme.project.api.MyObjResourceITest.
> testGETMyObj1(
> >> >> >> >> MyObjResourceITest.java)
> >> >> >> >>
> >> >> >> >> Johnzon looks cool, and we will consider it for the future, but
> >> right
> >> >> >> >> now, just need to get back to the old behavior with Jackson
> doing
> >> all
> >> >> >> >> of our transcoding. How can I get back to that behavior? We
> >> already
> >> >> >> >> have src/main/webapp/WEB-INF/openejb-jar.xml:
> >> >> >> >>
> >> >> >> >> <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1";>
> >> >> >> >>   <pojo-deployment class-name="com.acme.project.api.API">
> >> >> >> >>     <properties>
> >> >> >> >>       cxf.jaxrs.skip-provider-scanning = true
> >> >> >> >>       cxf.jaxrs.providers = com.fasterxml.jackson.jaxrs.
> >> >> >> >> json.JacksonJsonProvider
> >> >> >> >>     </properties>
> >> >> >> >>   </pojo-deployment>
> >> >> >> >>
> >> >> >> >> Thanks!
> >> >> >> >>
> >> >> >>
> >> >>
> >>
>

Reply via email to