1
private <T> T[] getObjects(Class<T> tClass, String version) { String subUrl = "/versions/" + version; return ClientBuilder.newClient() .target(url) .request() .get(new GenericType<T[]>(tClass) {}); } 

Here the json object

[ { "id":1, "name":"test", "country":"USA" }, { "id":2, "name":"test_1", "country":"cameroon" } ] 

The call of getObjects method:

X[] x = getObjects(X.class, currentVersionName); 

i get this exception:

Caused by: org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of X out of START_ARRAY token at [Source: org.apache.http.conn.EofSensorInputStream@3eb91815; line: 1, column: 1] at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163) at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:219) at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:212) at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromArray(BeanDeserializer.java:875) at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:597) at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704) at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315) at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419) at org.jboss.resteasy.core.interception.jaxrs.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:66) at org.jboss.resteasy.core.interception.jaxrs.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:56) at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:248) ... 38 more 

i use those dependency:

<dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-client</artifactId> <version>3.1.2.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jackson-provider</artifactId> <version>3.1.2.Final</version> </dependency> 
1
  • Maybe there's already enough for a resteasy/jackson expert, but I would ask: do you have the exception trace at the bottom? (from the last "Caused by" to the bottom) Commented Jun 23, 2017 at 7:00

1 Answer 1

1

try change:

private <T> T[] getObjects(Class<T> tClass, String version) 

to

private <T> T[] getObjects(Class<T[]> tClass, String version) 

And your caller will be

X[] x = getObjects(X[].class, currentVersionName); 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.