2014-02-11 71 views
0

进行窃听,我需要用骆驼做窃听。使用Apache的骆驼

下面是一段代码,我已经写了

from("jetty:http://xyz:8080?enableMultipartFilter=false") 
        .streamCaching() 
        .wireTap("direct:tap").copy(true).process(new WireTapProcessor()).end() 
.process(new RequestProcessor()) 
.to("file:Z:/Testing/input"); 

当上面的代码执行时,它给了我异常NoDirectConsumersAvailable。

可否请你建议如何在上述情况下进行窃听

回答

0

那么你发送搭线的直接消费者,但你不要建立一个直接的消费者途径或者换句话说,你从来没有定义其他途径来处理电线水龙头。我在这里使用seda队列而不是直接队列。

尝试以下操作:

from("jetty:http://xyz:8080?enableMultipartFilter=false") 
       .streamCaching() 
       .wireTap("seda:wiretapqueue") 
.process(new RequestProcessor()) 
.to("file:Z:/Testing/input"); 

from("seda:wiretapqueue").to("somecomponent:foo"); 

这应该解决您的问题。另请参阅this link

+0

使用上面给了我的异常为: – user3265703

+0

它提供了异常:异常在线程“主要” org.apache.camel.FailedToStartRouteException:无法启动路由路径2,因为多个消费者对同一端点是不允许的: Endpoint [direct:// tap] \t at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:2142) – user3265703

+0

我们已经添加了routebuilder并启动了camel,如下所示:Main main = new Main(); main.enableHangupSupport(); main.addRouteBuilder(new XyzRouteBuilder()); main.run(args); – user3265703