代码之家  ›  专栏  ›  技术社区  ›  Sarun

Apache Camel如何从sql组件访问头值

  •  4
  • Sarun  · 技术社区  · 8 年前

    我试图使用属性头打印sql组件选择的行数。CamelSqlRowCount。然而,该值为空。 我添加了另一篇文章中提到的跟踪,以检查标题值,并且只打印面包屑。有人能告诉我我做错了什么吗?

    骆驼路线

            <endpoint id="sqlComponent" uri="sql:${sql.pollerQuery}?dataSource=DataSource&amp;consumer.delay=60000&amp;consumer.useIterator=false"/>
        <route id="root">
            <from ref="sqlComponent"/>
            <log message="Received ${header.CamelSqlRowCount} records from the poller query"/>
            <log message="Message Body= ${body}"/>
        </route>
    

    记录的跟踪如下

    DEBUG 2017-11-16 18:01:00 [Camel (camel-1) thread #0 - sql://SELECT%20ID%20FROM%20TABLE%20WHERE%20PUBLISHED%20=%20'N'] Executing query: SELECT ID FROM TABLE WHERE PUBLISHED = 'N'
    INFO  2017-11-16 18:01:01 [Camel (camel-1) thread #0 - sql://SELECT%20ID%20FROM%20TABLE%20WHERE%20PUBLISHED%20=%20'N'] ID-MyMachine >>> (root) from(sql://SELECT%20ID%20FROM%20TABLE%20WHERE%20PUBLISHED%20=%20'N'?consumer.delay=60000&consumer.useIterator=false&dataSource=odsDataSource) --> log[Received ${header.CamelSqlRowCount} records from the poller query] <<< Pattern:InOnly, Headers:{breadcrumbId=ID-MyMachine}, BodyType:java.util.ArrayList, Body:[{ID=1}, {ID=2}, {ID=3}, {ID=4}, {ID=5}]
    INFO  2017-11-16 18:01:01 [Camel (camel-1) thread #0 - sql://SELECT%20ID%20FROM%20TABLE%20WHERE%20PUBLISHED%20=%20'N'] Received  records from the poller query
    INFO  2017-11-16 18:01:01 [Camel (camel-1) thread #0 - sql://SELECT%20ID%20FROM%20TABLE%20WHERE%20PUBLISHED%20=%20'N'] ID-BLRKEC381989D-52624-1510835442422-0-2 >>> (root) log[Received ${header.CamelSqlRowCount} records from the poller query] --> log[Message Body= ${body}] <<< Pattern:InOnly, Headers:{breadcrumbId=ID-MyMachine}, BodyType:java.util.ArrayList, Body:[{ID=1}, {ID=2}, {ID=3}, {ID=4}, {ID=5}]
    INFO  2017-11-16 18:01:01 [Camel (camel-1) thread #0 - sql://SELECT%20ID%20FROM%20TABLE%20WHERE%20PUBLISHED%20=%20'N'] Message Body= [{ID=1}, {ID=2}, {ID=3}, {ID=4}, {ID=5}]
    

    骆驼版本-2.15.1

    1 回复  |  直到 8 年前
        1
  •  6
  •   Claus Ibsen    8 年前

    此标题不在使用者上设置,仅在生产者上设置。您在邮件正文列表中有大小。您可以在Apache Camel上记录JIRA票证,要求消费者也包含此标头。

    推荐文章