Java Rest - 使用GET方法发送参数化列表

jav*_*irl 5 java rest jax-rs jersey

我试图通过GET方法发送List.

这是我的服务器端:

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<User> getUsers(){
    return managment.getUsers();
}
Run Code Online (Sandbox Code Playgroud)

而我的客户方:

public static void getUsers(){
    try {
        ClientConfig clientConfig = new DefaultClientConfig();
        clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
        Client client = Client.create(clientConfig);




        WebResource webResource = client
                .resource("http://localhost:8080/Serwer07/user");

        ClientResponse response = webResource.accept("application/json")
                .get(ClientResponse.class);

        if (response.getStatus() != 200) {
            throw new RuntimeException("Failed : HTTP error code : "
                    + response.getStatus());
        }

       List users = response.getEntity(List.class);          
       User user = (User) users.get(0);  //cannot cast
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我有从Java Object到User的强制转换问题.我该如何发送此列表?

提前致谢.

Ant*_*oly 5

使用GenericType.

List<User> users = webResource.accept(MediaType.APPLICATION_JSON)
   .get(new GenericType<List<User>>() {});
Run Code Online (Sandbox Code Playgroud)

UPDATE

ClientResponse也会使getEntity超载以接受GenericTypes.

List<User> users = response.getEntity(new GenericType<List<User>>() {});      
Run Code Online (Sandbox Code Playgroud)