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! > >> >> >> > >> >> > >> >
