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
<rmannibu...@gmail.com> 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 <jie...@gmail.com>:
>
>> I have to support application/xml too though.
>>
>> On Thu, Nov 17, 2016 at 12:39 PM, Romain Manni-Bucau
>> <rmannibu...@gmail.com> 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 <jie...@gmail.com>:
>> >
>> >> 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
>> >> <rmannibu...@gmail.com> wrote:
>> >> > 2016-11-17 18:12 GMT+01:00 jieryn <jie...@gmail.com>:
>> >> >
>> >> >> 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
>> >> >> <rmannibu...@gmail.com> 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" <jie...@gmail.com> 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