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