Итак, у меня есть API отдыха, который находится на https://foo.bar/api, который возвращает либо пустой json список []
, либо список, содержащий 1 или более элементов:
[
{
"@class": "foo.bar.java.MyObject",
"name": "Joe Bloggs"
},
{
"@class": "foo.bar.java.MyObject",
"name": "Fred Flinstone"
}
]
Теперь я пытаюсь заставить верблюда взять эти данные из моей конечной точки и передать каждый объект в списке процессору. Я пробовал следующее:
fromF("timer://foo-poll?fixedRate=true&delay=5s&period=%d&bridgeErrorHandler=true", pollRate)
.toF("https4://%s/%s", host, requestPath)
.log("Received: ${body}")
.split()
.jsonpath("$")
.log("Split: ${body}")
.process(barProccessor);
А также различные попытки разархивировать данные, используя .unmarshal(new ListJacksonDataFormat(MyObject.class))
или .unmarshal().json(JsonLibrary.Jackson, List.class)
, где ничего не получалось.
Использование большого блока кода выше ошибок нет и принтеры сообщений журнала «Split: $ {body}» не выводятся.
При отмене сортировки с использованием любого из методов, описанных выше, выдается это независимо от того, сколько элементов возвращено из API:
com.faster xml .jackson.databind.ex c .MismatchedInputException: нет содержимого для сопоставления из-за конца ввода
Когда есть