如何读取具有相同文件名的多个附件

时间:2018-01-11 13:22:35

标签: java apache-camel apache-camel-mail

我有一个Java Maven项目,我使用org.apache.camel来获取邮件和附件信息。

<dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-mail</artifactId>
        <version>2.17.0</version>
</dependency>

给定一个Exchange对象,我使用此代码来获取附件:

Message message = exchange.getIn().copy();
message.getAttachments()

其中messageCopy.getAttachments()返回将Map<String, DataHandler>映射到attachment-file-Name的{​​{1}}。

当邮件具有单个附件或名称不同的附件时,此代码有效。当我有两个具有相同名称的附件时,由于地图结构,只返回一个附件(另一个只是被覆盖)。

有没有人有同样的问题和/或知道另一种方法来获得两个(或更多)同名附件?

由于

1 个答案:

答案 0 :(得分:1)

我记得在上一个项目中曾遇到过这个问题。我认为解决方法是将原始邮件拆分为N条单独的邮件,以便即使它们具有相同的名称,也可以处理它们。

看看骆驼SplitAttachmentsExpression。 可以找到here的现有单元测试。