Apache camel Camel-轮询rest端点和拆分JSON列表
因此,我有一个rest API,它返回一个空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从端点接收这些数据,并将
[]
,或者一个包含一个或多个项的列表:
[
{
"@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,我已经用我的发现更新了我的问题