343.4. unmarshal
이 예에서는 MY_QUEUE라는 ActiveMQ 큐의 Tar 파일 페이로드를 원래 형식으로 분리하고 처리를 위해 UnTarMessageProcessor로
전달합니다.
from("activemq:queue:MY_QUEUE").unmarshal().tarFile().process(new UnTarpedMessageProcessor());
Tar File에 하나 이상의 항목이 있는 경우 TarFileDataFormat의 usingIterator 옵션이 true이고 splitter를 사용하여 추가 작업을 수행할 수 있습니다.
TarFileDataFormat tarFile = new TarFileDataFormat(); tarFile.setUsingIterator(true); from("file:src/test/resources/org/apache/camel/dataformat/tarfile/?consumer.delay=1000&noop=true") .unmarshal(tarFile) .split(body(Iterator.class)) .streaming() .process(new UnTarpedMessageProcessor()) .end();
또는 Tar Cryostatter를 다음과 같이 splitter의 표현식으로 사용할 수 있습니다.
from("file:src/test/resources/org/apache/camel/dataformat/tarfile?consumer.delay=1000&noop=true") .split(new TarSplitter()) .streaming() .process(new UnTarpedMessageProcessor()) .end();