Я использую 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 может правильно прочитать список.
Теперь другой путь проблема:
извлечения ресурсов определяется как:
@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
в этой точке, или, вернее, список связанных ссылок?