cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Eineke (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-5235) Cannot use multiple ResponseReaderS
Date Mon, 26 Aug 2013 18:23:52 GMT
Chris Eineke created CXF-5235:
---------------------------------

             Summary: Cannot use multiple ResponseReaderS
                 Key: CXF-5235
                 URL: https://issues.apache.org/jira/browse/CXF-5235
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 2.6.8
            Reporter: Chris Eineke
            Priority: Critical


I've created a factory that uses JAXRSClientFactory to create implementations of my service
interface classes.

In the body of each method I create a list of providers to be used by JAXRSClientFactory.create,
some of them being ResponseReaderS. Here's an example:

        JAXBElementProvider jaxbProvider = new JAXBElementProvider();
        JSONProvider jsonProvider = new JSONProvider();
        jsonProvider.setDropRootElement(true);
        jsonProvider.setSupportUnwrapped(true);
        jsonProvider.setConsumeMediaTypes(Service.ContentTypeSummary.PRODUCE_MEDIA_TYPES);
        jsonProvider.setProduceMediaTypes(Service.ContentTypeSummary.CONSUME_MEDIA_TYPES);
        List<Object> providers = Lists.newArrayList();
        providers.add(jaxbProvider);
        providers.add(jsonProvider);
        providers.add(new ResponseReader(MyListV1.class));
        providers.add(new ResponseReader(MyV1.class));
        providers.add(new LoggingOutInterceptor(new PrintWriter(System.out)));
        providers.add(new LoggingInInterceptor(new PrintWriter(System.out)));
        return JAXRSClientFactory.create(
            System.getProperty("service.url"),
            MyRestfulService.class,
            providers,
            true);

This particular service has two methods: one that returns a list of MyV1 and another one that
just returns a MyV1. Now, it seems that the web client under hood always uses the first registered
ResponseReader for any sort of response. If I call getMyV1 with the above order, I get a CCE.
It works fine when I call getMyListV1, though. If I switch the order around, the service calls
work vice versa as well.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message