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