2014-02-11 2 views
0

낙타를 사용하여 wireTap을 수행해야합니다.아파치 낙타를 사용하여 와이어 탭 수행

아래는 위의 코드를 실행할 때 내가

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에서 예외 : 동일한 끝점에 대해 여러 소비자가 허용되지 않기 때문에 route2를 시작하지 못했습니다 : Endpoint [direct : // tap] \t org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers (DefaultCamelContext.java:2142) – user3265703

+0

다음과 같이 routebuilder를 추가하고 낙타를 시작했습니다. Main main = new Main(); main.enableHangupSupport(); main.addRouteBuilder (new XyzRouteBuilder()); main.run (args); – user3265703

관련 문제