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

Ale*_*Ale 7 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>
Run Code Online (Sandbox Code Playgroud)

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

Message message = exchange.getIn().copy();
message.getAttachments()
Run Code Online (Sandbox Code Playgroud)

messageCopy.getAttachments()返回一个Map<String, DataHandler>映射attachment-file-NameDataHandler.

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

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

谢谢

Tac*_*oco 1

我记得我之前的项目中也遇到过这个问题。我认为解决方法是将原始消息拆分为 N 个单独的消息,以便您可以处理每个消息,即使它们具有相同的名称。

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