Java 接收用户端点数据
我创建了一条大致如下的路线:Java 接收用户端点数据,java,twitter,apache-camel,Java,Twitter,Apache Camel,我创建了一条大致如下的路线: @Override public void configure() throws Exception { from("direct:twitter") .from("twitter://timeline/user?type=direct&user=" + this.uri) .choice() .when(body().is
@Override
public void configure() throws Exception {
from("direct:twitter")
.from("twitter://timeline/user?type=direct&user=" + this.uri)
.choice()
.when(body().isInstanceOf(Status.class))
.process(new MyTwitterProcessor())
.convertBodyTo(MyClass.class)
.to("log:do something")
.endChoice()
.to("log:mi amigo");
}
直接从producerTemplate.requestBody(“direct:twitter”,object)调用此路由,我希望收到MyClass.class实例的列表。相反,它返回我在requestBody方法调用中发送的对象
根据日志语句“log:do something”,我可以看到状态对象正在被返回——来自twitter的请求和响应显然正在发生
我想了解为什么我的路由配置返回我发送的对象,而不是来自twitter的状态对象结果。我还为Facebook帖子和RSS提要写了另外两条路线。它们遵循类似的模式并返回响应对象,而不是我发送的请求
我还想知道我可以做些什么来更改行为,以便producerTemplate.requestBody(…)返回twitter消息列表
感谢您抽出时间。使用该组件获取更多数据:
from("direct:twitter")
.pollEnrich("twitter://timeline/user?type=direct&user=" + this.uri)
.choice()
...
或者,您可以只使用以下自动启动的路线:
from("twitter://timeline/user?type=direct&user=" + this.uri)
.choice()
...
注意,每个返回的对象创建一个路由交换,而不是一个列表。谢谢,我已经解决了这个问题。