如何使用Apache Camel使用Chunked HTTP流?

时间:2015-04-01 15:14:56

标签: apache-camel

我在使用Camel消耗Chunked HTTP RSVP流时遇到问题。

该信息流为here,您可以在this page

结尾处找到有关该信息的更多信息。

我创建了一条简单的路线:

from("http4://stream.meetup.com/2/rsvps").log(org.apache.camel.LoggingLevel.INFO, "MeetupElasticSearch.Log", "JSON RSVP ${body}")

但没有任何消息被消耗掉。之前我尝试添加一个驼峰计时器,因为我不确定你可以直接在from中使用http4组件,但结果是一样的。

你能帮我吗?

1 个答案:

答案 0 :(得分:2)

您无法在http4指令中使用from()组件。

但是,有几种方法可以调用URL并检索结果:

一个是创建一个计时器并从http4调用to()组件,如下所示:

from("quartz2://HttpPoll/myTimer?trigger.repeatCount=0")
    .to("http4://stream.meetup.com/2/rsvps")
    .log("Body is: ${body}")
    .to(mockDestination);

另一种方法是使用content enricher模式,例如,如果您希望将结果混合到另一个结构中。

另请注意,如果您的网址是动态的,则必须使用recipientList()代替to()

<强>更新

从Internet使用流的另一种方法是使用http4以外的其他组件:camel-stream

您可以在from()指令中声明它:

 // Read stream from the given URL... an publish in a queue
    from("stream:url?url=http://stream.meetup.com/2/rsvps&scanStream=true&retry=true").
      to("seda:processingQueue");

    // Read records from the processing queue
    // and do something with them.
    from("seda:processingQueue").to("log:out")

您可以在this site中看到更多示例。