383.4. unmarshal
이 예제에서는 MY_QUEUE라는 ActiveMQ 큐에서 Zip 파일 페이로드를 원래 형식으로 변환 해제하고 이를 UnZippedMessageProcessor
로 전달합니다.
from("activemq:queue:MY_QUEUE") .unmarshal().zipFile() .process(new UnZippedMessageProcessor());
zip 파일에 하나 이상의 항목이 있는 경우 ZipFileDataFormat의 usingIterator 옵션이 true로, splitter를 사용하여 추가 작업을 수행할 수 있습니다.If the zip file has more then one entry, the usingIterator option of ZipFileDataFormat to be true, and you can use splitter to do the further work.
ZipFileDataFormat zipFile = new ZipFileDataFormat(); zipFile.setUsingIterator(true); from("file:src/test/resources/org/apache/camel/dataformat/zipfile/?consumer.delay=1000&noop=true") .unmarshal(zipFile) .split(body(Iterator.class)).streaming() .process(new UnZippedMessageProcessor()) .end();
또는 ZipSplitter를 다음과 같이 직접 분할하는 표현식으로 사용할 수 있습니다.
from("file:src/test/resources/org/apache/camel/dataformat/zipfile?consumer.delay=1000&noop=true") .split(new ZipSplitter()).streaming() .process(new UnZippedMessageProcessor()) .end();