343.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();