我正在尝试通过GET方法发送List。
这是我的服务器端:
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<User> getUsers(){
return managment.getUsers();
}
我的客户方:
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();
}
}
我遇到从Java Object转换为User的问题。我该如何发送此列表?
提前致谢。
答案 0 :(得分:5)
使用GenericType。
List<User> users = webResource.accept(MediaType.APPLICATION_JSON)
.get(new GenericType<List<User>>() {});
更新
ClientResponse
也会重载getEntity以接受GenericType
。
List<User> users = response.getEntity(new GenericType<List<User>>() {});