У меня есть метод ресурса REST, возвращающий jakarta.ws.rs.core.streamingoutput сущность. Этот класс обеспечивает убедительный прогрессивный streamingoutput.write (outputstream os) вывод в ответ HTTP.
Мне нужно повторно использовать метод внутри. Я сделал этот тестовый код, и он работает нормально.
Вопрос: возможно ли каким -то образом предоставить StreamingOutput непосредственно на jsonnode jsonroot = objectmapper.readtree () функция? Или другой трюк без сначала создания временной строки sdata переменной?
// rest resource function
public Response getList(long custId, String keyword) {
List list = JPADB.getMyEntities(custId, keyword);
StreamingOutput stream = createStream(list);
CacheControl cc = new CacheControl();
cc.setNoCache(true);
return Response.ok().type(TYPE_JSON).cacheControl(cc).entity(stream).build();
}
// somewhere else reuse an existing rest method
MyEntityRest mrest = new MyEntityRest();
Object retvalObj = mrest.getList(1, "test").getEntity();
ByteArrayOutputStream os = new ByteArrayOutputStream(4*1024);
((StreamingOutput)retvalObj).write(os);
String sData = os.toString("UTF-8");
JsonNode jsonRoot = om.readTree(sData);
JsonNode jsonItem = jsonRoot.path("items").get(0);
System.out.println(String.format("%s %s"
, jsonItem.path("code").asText("")
, jsonItem.path("names").get(0).path("value").asText("")
));
Подробнее здесь: https://stackoverflow.com/questions/795 ... put-entity
Получите Jackson jsonnode от Jakarta.streamingOutput Entity ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
@JsonInclude(JsonInclude.Include.NON_EMPTY) не работает с jackson-jakarta-rs-json-provider
Anonymous » » в форуме JAVA - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-