31.15. 첨부 파일로 메일 메시지를 분할하는 방법
이 예제에서는 여러 첨부 파일이 있을 수 있는 메일 메시지를 사용합니다. 개별 첨부 파일당 Splitter EIP를 사용하여 첨부 파일을 별도로 처리하려고 합니다. 예를 들어 메일 메시지에 5개의 첨부 파일이 있는 경우 Splitter에서 각각 하나의 첨부 파일을 갖는 메시지를 5개 처리하려고 합니다. 이렇게 하려면 단일 첨부 파일과 함께 5개의 메시지가 포함된 List<Message>를 제공하는 Splitter에 사용자 지정 표현식을 제공해야 합니다.
코드는 camel-mail 구성 요소에서 Camel 2.10 이후의 상자에서 제공됩니다. 코드는 여기에 있는 소스 코드에서 찾을 수 있는 org.apache.camel.component.mail.mail.>-<AttachmentsExpression 클래스에 있습니다.
Camel 경로에서 이 표현식을 다음과 같이 경로에서 사용해야 합니다.
XML DSL을 사용하는 경우 아래와 같이 Splitter에서 메서드 호출 표현식을 선언해야 합니다.
<split>
<method beanType="org.apache.camel.component.mail.SplitAttachmentsExpression"/>
<to uri="mock:split"/>
</split>
메시지 본문으로 저장되는 첨부 파일을 byte[]로 분할할 수도 있습니다. 부울 true로 식을 생성하여 이 작업을 수행합니다.
SplitAttachmentsExpression split = SplitAttachmentsExpression(true);
그런 다음 이 표현식을 splitter EIP와 함께 사용합니다.