2015-07-15 15:33 GMT+02:00 Chris Wolf <[email protected]>: > Jose, > > Thanks for the suggestion, but if you look at the code snippet in my > original message, you can see that I already have "providers.add(new > JSONProvider());", unless I missed something.
I see providers.add(JSONProvider.class); am I wrong ? > > Thanks, > > Chris > > On Wed, Jul 15, 2015 at 2:56 AM, Jose María Zaragoza > <[email protected]> wrote: >> 2015-07-14 19:26 GMT+02:00 Chris Wolf <[email protected]>: >>> Again, referring to the example code at: >>> >>> https://cwiki.apache.org/confluence/display/CXF20DOC/JAXRS+Testing >>> >>> This client code works: >>> >>> @Test >>> public void testGetBookWithProxy() { >>> MyJaxrsResource client = >>> JAXRSClientFactory.create(ENDPOINT_ADDRESS, MyJaxrsResource.class); >>> >>> WebClient.getConfig(client).getRequestContext().put(LocalConduit.DIRECT_DISPATCH, >>> Boolean.TRUE); >>> WebClient.getConfig(client).setBus(bus); >>> Response r = client.getBook("123"); >>> String bookJSON = r.readEntity(String.class); >>> log.info("JAXRS Client result: {}", bookJSON); >>> } >>> >>> ...but this client code (which should try to unmarshall to object) doesn't >>> work: >>> >>> @Test >>> public void testGetBookWithWebClient() { >>> List<Object> providers = new ArrayList<Object>(); >>> // add custom providers if any >>> providers.add(JSONProvider.class); >>> >>> WebClient client = WebClient.create(ENDPOINT_ADDRESS, providers); >>> client.accept("application/json"); >>> client.path("shelf/book"); >>> Book book = client.query("id", 123L).get(Book.class); >>> assertEquals(123L, book.getId()); >>> } >>> >>> >>> The error is: >>> >>> ResponseProcessingException: No message body reader has been found for >>> class CXF_Test.cxf_test.Book, ContentType: application/json >>> >>> However, as can be seen, I configured the "JSONProvider", which I >>> thought would unmarshal JSON to POJOs. >>> >>> Any ideas? >> >> >> >> >> Why don't you try >> >> providers.add(new JSONProvider()); >> >> ? >> >> This worked for me. >> >> Regards
