【发布时间】:2019-09-06 04:40:18
【问题描述】:
当从数据库中选择大量数据时,我想使用骆驼的split-组件。它应该将流拆分为 100 个对象并以迭代器格式获取它。
我成功地从 db 接收到多个数据,但是在拆分过程中失败。
我正在从<to> 获取数据,但我不知道在哪里写这个<to> 语法。
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="DbToKafka" streamCache="true">
<from uri="timer:foo?repeatCount=1" />
<split streaming="true">
<tokenize token="{" />
<to uri="sql:classpath:sql/get.sql" />
</split>
<log message="DATA : ${body}" />
<marshal>
<json library="Jackson" />
</marshal>
<log message="JSON : ${body}" />
<to uri="kafka:test-topic?brokers={{kafka.brokers}}" />
<log message="data sended : ${body}" />
</route>
</routes>
2019-09-06 13:29:29.380 错误 10260 --- [3 - timer://foo] o.a.camel.processor.DefaultErrorHandler :交付失败 (MessageId:ExchangeId 上的 ID-DESKTOP-225HFIE-1567744166599-0-2: ID-桌面-225HFIE-1567744166599-0-1)。交货后用尽 尝试:1 捕获:java.lang.NullPointerException:源
消息历史 -------------------------------------------------- -------------------------------------------------- ---------------------------------- RouteId ProcessorId 处理器
经过(毫秒)[DbToKafka] [DbToKafka] [timer://foo?repeatCount=1
] [ 9] [DbToKafka ] [split1 ] [使用令牌分割[tokenize{body(): ,}]
] [ 7]在没有 split 语句的情况下运行,得到以下结果: [{"ROW_ID":"520","COM_CD_NM":"사용중"},{"ROW_ID":"521","COM_CD_NM":"메모지 수수 "},{"ROW_ID":"522","COM_CD_NM":"상호대화
"},{"ROW_ID":"523","COM_CD_NM":"물품수수
"},{"ROW_ID":"524","COM_CD_NM":"기타
"},{"ROW_ID":"525","COM_CD_NM":"자격증변조"},...]
【问题讨论】:
标签: java apache-kafka apache-camel