2017-02-06 2 views
0

아파치 카멜은 FTP와 "파일"과 같은 다양한 프로토콜을 아주 훌륭하게 지원합니다. 단지 하나의 파일을로드하고 그것을 약간 변환하기 위해 사용하고 싶습니다.Apache Camel을 사용하여 단일 파일을로드하는 방법은 무엇입니까?

예제에서와 같이 RouteBuilder 및 CamelContext.start()를 사용하여이 작업을 수행하는 방법을 알았지 만 무한 루프에서 백그라운드 데몬을 원하지 않으며 복잡한 라우팅이 필요하지 않습니다. 내가? "ControlBus 인 행동이 = 정지"또는 사용하여 경로를 중지하는 방법에 대한 몇 가지 답변 읽었다

String body = new DefaultCamelContext().justRunOnce(
    from("ftp://ftp.example.com/data/foo.txt") 
    .validate(body().regex("My Data.*")) 
    .getBody()); 

유사하거나 그러나 그 여전히 :

어떻게 같은 것을 할 수 있 느니라 "타이머 = 1 반복?" Camel을 새 스레드로 시작한 다음 해킹을 사용하여 중지하십시오. 나는 어떻게 든 그것을 관리하는 복잡한 솔루션을 찾고있는 것이 아니라 오히려 위의 예 에서처럼 카멜이 마른 10 라이너에 사용될 수 있는지 알고 싶습니다.

+0

가능한 복제 [어떻게 얻을 :

예, 당신은 대신 파일 엔드 포인트의 FTP 엔드 포인트를 사용할 수 있습니다 Camel FTP를 요청하면 한 번만 가져올 수 있습니다.] (http://stackoverflow.com/questions/31819073/how-to-get-camel-ftp-to-fetch-only-once-on-demand) –

+1

분명히 더 좋은 점이 있습니다. 기업 통합 패턴 프레임 워크를 사용하여 단일 파일을 다운로드하는 것보다 아주 간단한 처리를해라. – Strelok

+0

Camel.createConsumerTemplate()을 사용하여 ConsumerTemplate을 사용하여 파일을 한 번만 다운로드하고 어떤 경로도 필요 없음 –

답변

관련 문제