Apache camel Camel-轮询rest端点和拆分JSON列表

Apache camel Camel-轮询rest端点和拆分JSON列表,apache-camel,unmarshalling,polling,Apache Camel,Unmarshalling,Polling,因此,我有一个rest API,它返回一个空json列表[],或者一个包含一个或多个项的列表: [ { "@class": "foo.bar.java.MyObject", "name": "Joe Bloggs" }, { "@class": "foo.bar.java.MyObject", "name": "Fred Flinstone" } ] 现在,我试图让camel从端点接收这些数据,并将

因此,我有一个rest API,它返回一个空json列表
[]
,或者一个包含一个或多个项的列表:

[
    {
        "@class": "foo.bar.java.MyObject",
        "name": "Joe Bloggs"
    },
    {
        "@class": "foo.bar.java.MyObject",
        "name": "Fred Flinstone"
    }
]
现在,我试图让camel从端点接收这些数据,并将列表中的每个对象交给处理器。我尝试了以下方法:

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(新的ListJacksonDataFormat(MyObject.class))
.unmarshal().json(JsonLibrary.Jackson,List.class))对数据进行解组的各种尝试。
什么都没用的地方

使用上面较大的代码块,不会出现错误,“Split:${body}”日志消息打印机也不会退出

无论从API返回多少项,使用上述任一方法进行解组都会引发此问题:

com.fasterxml.jackson.databind.exc.MismatchedInputException:否 由于输入结束,要映射的内容


当出现

好的,设法找出是否还有其他人面临类似问题。工作路线生成器:

fromF("timer://foo-poll?fixedRate=true&delay=5s&period=%d&bridgeErrorHandler=true", pollRate)
    .toF("https4://%s/%s", host, requestPath)
    .log("Received: ${body}")
    .streamCaching("true")
    .unmarshal(new ListJacksonDataFormat(MyObject.class))
    .split()
        .jsonpath("$")
        .log("Split: ${body}")
    .process(barProccessor);

我已经启用了流缓存,并使用Jackson对列表进行了解组。

您遇到了什么错误?@CamelDev,我已经用我的发现更新了我的问题