title: Jersey ClientResponse.getEntity of generic type
body: <p>I got a problem to deserialize using jeresy ClientRespone.getEntity </p>
  
  <p>I've tried to follow some tutorials and questions, include this:
  <a href="http://jersey.576304.n2.nabble.com/How-can-I-parse-a-java-util-List-lt-gt-Is-it-supported-by-the-Jersey-client-td2300852.html" rel="noreferrer">http://jersey.576304.n2.nabble.com/How-can-I-parse-a-java-util-List-lt-gt-Is-it-supported-by-the-Jersey-client-td2300852.html</a>
  <a href="https://jersey.java.net/nonav/documentation/1.5/json.html" rel="noreferrer">https://jersey.java.net/nonav/documentation/1.5/json.html</a>
  <a href="http://www.programcreek.com/java-api-examples/index.php?api=com.sun.jersey.api.client.GenericType" rel="noreferrer">http://www.programcreek.com/java-api-examples/index.php?api=com.sun.jersey.api.client.GenericType</a></p>
  
  <p>and i still got the same exception over and over again..</p>
  
  <p>My goal is:
  instead of: </p>
  
  <pre><code>response.getEntity(String.class); --&gt; {"name":"Ben","type":"The man","id":0}
  </code></pre>
  
  <p>and then parse it (using Jackson for example), I want to get the entity into my POJO object.</p>
  
  <p>this is my tryings so far:</p>
  
  <p>ServerSide: </p>
  
  <pre><code>@POST
  @Path("/account") // route to a specific method.re
  @Consumes(MediaType.APPLICATION_JSON)
  @Produces(MediaType.APPLICATION_JSON)
  public Response saveDataIntoHash(Account account) {
      Account createdAccount = new Account(account.getName(), account.getType());
      accountHash.put(createdAccount.getID(), createdAccount);
      return Response.status(201).entity(new AccountResponse(createdAccount.getID())).build();
  }
  </code></pre>
  
  <p>Server side Account Class:</p>
  
  <pre><code>private String name;
  private String type;
  private int ID;
  
  private static int classID = 0;
  
  public Account(String name, String type) {
      this.name = name;
      this.type = type;
      this.ID = classID++;
  }
  
  public Account() {
  }
  
  public void setName(String name) { this.name = name; }
  
  public String getName() { return name; }
  
  public void setType(String type) { this.type = type; }
  
  public String getType() { return type; }
  
  public int getID() {
      return ID;
  }
  
  public void setID(int ID) {
      this.ID = ID;
  }
  
  public static int getClassID() {
      return classID;
  }
  
  public static void setClassID(int classID) {
      Account.classID = classID;
  }
  </code></pre>
  
  <p>ClientSide </p>
  
  <pre><code>private static void getToRestPartner(Client client) {
      WebResource webResource = client.resource("http://localhost:8080/RESTfulExample/rest/account/0");
      ClientResponse response = webResource.type("application/json").get(ClientResponse.class);
  
      if (!(response.getStatus() == 201 || response.getStatus() == 200)) {
          throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
      }
  
      System.out.println("Output from Server .... \n");
  
      List&lt;Account&gt; accountList =  response.getEntity(new GenericType&lt;List&lt;Account&gt;&gt;() {
      });
  
      System.out.println(accountList.size());
  }
  </code></pre>
  
  <p>Client Account class:</p>
  
  <pre><code>@XmlRootElement
  public class Account {
  @XmlElement
  private String name;
  @XmlElement
  private String type;
  @XmlElement
  private int id;
  
  public Account(String name, String type, Integer id) {
      this.name = name;
      this.type = type;
      this.id = id;
  }
  
  public Account() {
  }
  
  public String getName() {
      return name;
  }
  
  public void setName(String name) {
      this.name = name;
  }
  
  public String getType() {
      return type;
  }
  
  public void setType(String type) {
      this.type = type;
  }
  
  public int getId() {
      return id;
  }
  
  public void setId(int id) {
      this.id = id;
  }
  </code></pre>
  
  <p>It throws this exception:</p>
  
  <pre><code>Dec 7, 2014 12:15:58 PM com.sun.jersey.api.client.ClientResponse getEntity
  SEVERE: A message body reader for Java class java.util.List, and Java type java.util.List&lt;Account&gt;, and MIME media type application/json was not found
  Dec 7, 2014 12:15:58 PM com.sun.jersey.api.client.ClientResponse getEntity
  SEVERE: The registered message body readers compatible with the MIME media type are:
  */* -&gt;
    com.sun.jersey.core.impl.provider.entity.FormProvider
    com.sun.jersey.core.impl.provider.entity.StringProvider
    com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
    com.sun.jersey.core.impl.provider.entity.FileProvider
    com.sun.jersey.core.impl.provider.entity.InputStreamProvider
    com.sun.jersey.core.impl.provider.entity.DataSourceProvider
    com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
    com.sun.jersey.core.impl.provider.entity.ReaderProvider
    com.sun.jersey.core.impl.provider.entity.DocumentProvider
    com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
    com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
    com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
    com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
    com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
    com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
    com.sun.jersey.core.impl.provider.entity.EntityHolderReader
  
  Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java class java.util.List, and Java type java.util.List&lt;Account&gt;, and MIME media type application/json was not found
      at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:549)
      at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:523)
      at com.sample.Sample.getToRestPartner(Sample.java:59)
      at com.sample.Sample.main(Sample.java:22)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
  </code></pre>
  
  <p>Your help will be appreciated !!</p>