2014-10-08 2 views
1

Я пытаюсь построить клиента отдыха с использованием джерси 2.13.REST Jersey Client - не удалось разобрать JSON в класс POJO

Конечной остальное находится в: https://gist.githubusercontent.com/richersoon/ff4dd5c5abe414c5ec4c/raw/4ce49c32e57bf071d052f7efa76f332d60308035/user.json

Но когда я попытался запустить приложение я получил:

Exception in thread "main" org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/plain, type=class com.napier.entity.User, genericType=class com.napier.entity.User. 
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:173) 
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:134) 
    at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:988) 
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:833) 
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:768) 
    at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:96) 
    at org.glassfish.jersey.client.ScopedJaxrsResponse.access$001(ScopedJaxrsResponse.java:56) 
    at org.glassfish.jersey.client.ScopedJaxrsResponse$1.call(ScopedJaxrsResponse.java:77) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:397) 
    at org.glassfish.jersey.client.ScopedJaxrsResponse.readEntity(ScopedJaxrsResponse.java:74) 
    at com.napier.service.rest.UsersClient.main(UsersClient.java:20) 

Вот код:

public class UsersClient { 
    public static void main(String[] args) { 
     Client client = ClientBuilder.newClient(); 
     WebTarget target = client.target(
       UriBuilder.fromUri(
         "https://gist.githubusercontent.com/richersoon/ff4dd5c5abe414c5ec4c/raw/4ce49c32e57bf071d052f7efa76f332d60308035/user.json")); 

     Response response = target.request().accept(MediaType.APPLICATION_JSON).get(Response.class); 
     User user = response.readEntity(User.class); 
     System.out.println(user); 
    } 
} 

Вот POJO:

@XmlRootElement 
public class User { 

    private String firstname; 
    private String lastname; 
    private String photourl; 

    ... setters and getters... 
} 

Вот POM:

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>2.13</version> 
</dependency> 

    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-moxy</artifactId> 
     <version>2.13</version> 
    </dependency> 

Пожалуйста, руководство меня, потому что я совершенно новой для веб-сервисов.

ответ

0

Кажется, вы пытаетесь получить доступ к урному uri, который является простым текстом.

Я был в состоянии получить его на работу с этим Ури, который является фактический файл .json

"https://gist.github.com/richersoon/ff4dd5c5abe414c5ec4c#file-user-json" 
Смежные вопросы