It's not wrong if the Book object is a JAXB bean per the test code -
in my case it's just an unannotated POJO - sorry for the confusion.

On Wed, Jul 15, 2015 at 9:38 AM, Jose María Zaragoza
<[email protected]> wrote:
> 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

Reply via email to