У меня есть клиент, который делает вызов покой на сервере, как это:
Entity<RequestObject> entity = Entity.json(new RequestObject(Arrays.asList(1, 2, 3), Arrays.asList("xColumn", "yColumn")));
ClientConfig config = new ClientConfig();
config.register(JacksonJsonProvider.class);
Client client = ClientBuilder.newClient(config);
Response response = client.target("http://172.18.0.1:10000/getProductsData")
.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.json(entity.getEntity()), Response.class);
List<WarehouseProductData> dwsData = response.readEntity(new GenericType<List<WarehouseProductData>>(){});
client.close();
Другой сервер отвечает следующим методом:
@PostMapping("/getProductsData")
public List<WarehouseProductData> greetingPost1(@RequestBody String json) {
WarehouseProductData wd = new WarehouseProductData(85654865);
wd.addData("xColumn", "value of product 85654865 for x column");
wd.addData("yColumn", "value of product 85654865 for y column");
wd.addData("the me column", "value of product 85654865 for 'the me column' column");
wd.addData("response for x", "1");
wd.addData("response for x", "2");
return Collections.singletonList(wd);
Класс WarehauseProductData выглядит следующим образом:
public class WarehouseProductData {
private int agoId;
private Map<String, String> data;
public WarehouseProductData(int agoId, Map<String, String> data) {
this.agoId = agoId;
this.data = data;
}
public WarehouseProductData(int agoId) {
this.agoId = agoId;
this.data = new HashMap<>();
}
public int getAgoId() {
return agoId;
}
public void setAgoId(int agoId) {
this.agoId = agoId;
}
public Map<String, String> getData() {
return data;
}
public void setData(Map<String, String> data) {
this.data = data;
}
public void addData(String columnName, String value) {
data.put(columnName, value);
}
}
Проблема в том, что когда
List<WarehouseProductData> dwsData = response.readEntity(new GenericType<List<WarehouseProductData>>(){});
запускается, dwsData выглядит так:
dwsData size = 1
|
--0 {WarehouseProductData}
|
-- agoId = 85654865
|
-- data = null (!!!which is incorect!!!)
Так как же разобрать ответ, чтобы правильно получить поле data
?