3
我使用resteasy在一些寧靜的web服務之間發送鍵/值對。Resteasy將列表轉換爲LinkedHashMap
張貼這些對我用這個片段
List<Pair> pairs = new ArrayList<>();
pairs.add(new Pair("name", "Arnold"));
pairs.add(new Pair("age", "20"));
ResteasyClient resteasyClient = getClient();
ResteasyWebTarget target = resteasyClient.target(targetURI);
Invocation.Builder request = target.request();
request.post(Entity.entity(entity, MediaType.APPLICATION_JSON_TYPE));
Pair
的名單只是用
public String key,
public String value
default constructor
(key,value) constructor
目標資源的未加分類的經收到此:
@POST
@Path("/metadata")
@Consumes(MediaType.APPLICATION_JSON)
public Response postMetadata(List<Pair> properties) {...
jax-rs資源可以正確讀取List。
現在的其他方式的問題是:
的檢索資源被定義爲:
@GET
@Path("/getUrl.../{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response getMetadata(@PathParam("id") String id) {
data_from_hibernate = em.find(id);
...
List<Pair> properties = new ArrayList<>();
//fill List from data
return Response.ok().entity(properties).build();
客戶側是:
Response response = request.get("http://getUrl.../"+id);
List<Pair> properties = response.readEntity(List.class);
logger.info("got properties != null? " +(properties!=null));
logger.info("size: "+properties.size());
logger.info("[0]" + properties.get(0));
logger.info("type: "+properties.get(0).getClass().getName());
列表不爲空;
大小是否正確; get(0)以奇怪的格式輸出:[0] {「name」:「value」};
,這是後面的怪格式的理由是:一個異常告訴我說:
java.util.LinkedHashMap中不能轉換配對
如何爲properties
一個LinkedHashMap
在這一點上,或者更確切地說:LinkedHashMaps列表?