342.4. unmarshal
이 예에서는 MY_QUEUE라는 ActiveMQ 큐에서 Tar 파일 페이로드를 원래 형식으로 분할하고 이를 UnTarpedMessageProcessor 로 보냅니다.
from("activemq:queue:MY_QUEUE").unmarshal().tarFile().process(new UnTarpedMessageProcessor()); Tar 파일에 하나 이상의 항목이 있는 경우 TarFileDataFormat의 usingIterator 옵션을 true로 설정하고 splitter를 사용하여 추가 작업을 수행할 수 있습니다.If the Tar File has more then one entry, the usingIterator option of TarFileDataFormat to be true, and you can use splitter to do the further work.
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();TarSplitter를 다음과 같이 직접 분할에 대한 식으로 사용할 수 있습니다.
from("file:src/test/resources/org/apache/camel/dataformat/tarfile?consumer.delay=1000&noop=true")
.split(new TarSplitter())
.streaming()
.process(new UnTarpedMessageProcessor())
.end();