私はresteasyを使用して、いくつかの安らかなWebサービスの間でキー/値のペアを送信しています。私はリストを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
ターゲット・リソースを持つだけで注釈なしクラスであるANを経由して、これを受け取る:
@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());
一覧nullではありません。
サイズは正しいです。
[0] {"name": "value"};
これは奇妙なフォーマットの理由が続いている:java.util.LinkedHashMapは、この時点でproperties
LinkedHashMap
でどのように
をペアにキャストすることはできません
:例外があることを私に伝えますLinkedHashMapsのリスト