我在使用Camel消耗Chunked HTTP RSVP流时遇到问题。
结尾处找到有关该信息的更多信息。我创建了一条简单的路线:
from("http4://stream.meetup.com/2/rsvps").log(org.apache.camel.LoggingLevel.INFO, "MeetupElasticSearch.Log", "JSON RSVP ${body}")
但没有任何消息被消耗掉。之前我尝试添加一个驼峰计时器,因为我不确定你可以直接在from
中使用http4组件,但结果是一样的。
你能帮我吗?
答案 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中看到更多示例。