342.3. marhal

이 예제에서는 Tar File 압축을 사용하여 압축된 페이로드로 일반 텍스트/XML 페이로드를 마샬링하고 MY_QUEUE라는 ActiveMQ 큐로 보냅니다.

from("direct:start").marshal().tarFile().to("activemq:queue:MY_QUEUE");

생성된 Tar File 내의 Tar 항목 이름은 파일 구성 요소에서 사용하는 표준 메시지 헤더인 들어오는 CamelFileName 메시지 헤더를 기반으로 합니다. 또한 발신 CamelFileName 메시지 헤더는 ".tar" 접미사를 사용하여 들어오는 CamelFileName 메시지 헤더의 값으로 자동 설정됩니다. 예를 들어 다음 경로에서 입력 디렉토리에서 "test.txt"라는 파일을 발견하면 출력은 "test.txt"라는 단일 Tar 항목이 포함된 "test.txt.tar"이라는 Tar File이 됩니다.

from("file:input/directory?antInclude=*/.txt").marshal().tarFile().to("file:output/directory");

들어오는 CamelFileName 메시지 헤더가 없는 경우(예: 파일 구성 요소가 소비자가 아닌 경우) 메시지 ID가 기본적으로 사용되고 메시지 ID가 일반적으로 고유한 ID이므로 ID-MACHINENAME-2443-12118892437-0.tar 과 같은 파일 이름이 생성됩니다. 이 동작을 재정의하려면 경로에서 CamelFileName 헤더 값을 명시적으로 설정할 수 있습니다.

from("direct:start").setHeader(Exchange.FILE_NAME, constant("report.txt")).marshal().tarFile().to("file:output/directory");

이 경로는 "report.txt"라는 단일 Tar 항목이 포함된 출력 디렉터리에 "report.txt.tar"이라는 Tar File이 생성됩니다.