331.5. 샘플
다음 샘플에서는 direct:in
끝점에서 System.out
스트림으로 메시지를 라우팅합니다.
// Route messages to the standard output. from("direct:in").to("stream:out"); // Send String payload to the standard output. // Message will be followed by the newline. template.sendBody("direct:in", "Hello Text World"); // Send byte[] payload to the standard output. // No newline will be added after the message. template.sendBody("direct:in", "Hello Bytes World".getBytes());
다음 샘플은 헤더 유형을 사용하여 사용할 스트림을 결정하는 방법을 보여줍니다. 샘플에서는 자체 출력 스트림인 MyOutputStream
을 사용합니다.
다음 샘플은 파일 스트림을 지속적으로 읽는 방법을 보여줍니다(UNIX tail
명령과 유사).
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000") .to("bean:logService?method=parseLogLine");
scanStream (pre Camel 2.7) 또는 scanStream + 재시도를 사용하는 한 번의 gotcha는 scanStreamDelay의 각 반복을 통해 파일을 다시 열고 스캔하는 것입니다. NIO2를 사용할 수 있을 때까지 파일이 삭제/생성될 때 안정적으로 감지할 수 없습니다.
롤오버/다시 작성된 경우 파일을 다시 로드하려면 fileWatcher
및 retry
옵션도 켜야 합니다.
from("stream:file?fileName=/server/logs/server.log&scanStream=true&scanStreamDelay=1000&retry=true&fileWatcher=true") .to("bean:logService?method=parseLogLine");