RS client returns entity of null
I have a JAX-RS service defined like this:
@Produces(MediaType.APPLICATION_JSON)
@GET
@Path("/namestartswith")
public List<ProductBrand> nameStartsWith(@QueryParam("name") String name) {
List<ProductBrand> productBrandList = productBrandService.findByNameStartsWith(name);
System.out.println("productBrandList: " + productBrandList);
return productBrandList;
}
Issuing the following URL:
http://localhost:19191/productbrand/namestartswith?name=f
produces:
{"productBrand":[{"brandImage":"ffbrand.png","description":"the brand called ff","id":"1","name":"ffbrand"},{"brandImage":"flfl.png","description":"flfl","id":"6","name":"flfl"},{"brandImage":"ffbran.png","description":"ffbr","id":"16","name":"ffbran"}]}
which means the service is working as intended.
Now I use RestEasy for client access.
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
The following code accesses the service:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:19191/productbrand/namestartswith?name=" + name);
Response restEasyResponse = target.request(MediaType.APPLICATION_JSON).get();
log("entity: " + restEasyResponse.readEntity(new GenericType<List<ProductBrand>>() {
}););
The output is:
entity: null
Even calling restEasyResponse.getEntity()
returns null
. What might be wrong?
I had a similar issue and I work around it using: restEasyResponse.readEntity(List.class)
It will return a List<Map<String, Object>> where each item represents an element of the json array.
链接地址: http://www.djcxy.com/p/82068.html下一篇: RS客户端返回null的实体