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

上一篇: Hibernate是否会在死锁后自动重启事务?

下一篇: RS客户端返回null的实体