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