1

在 Camel 2.x 中,我可以在消息中添加附件,例如:

exchange.getOut().addAttachment("LogFile.log.gz", new DataHandler(Base64.decodeBase64(FileContentBase64),"application/x-gzip"));

但在 Camel 3.0 中这是不可能的。我改变了我的代码,就像迁移指南说的那样:

exchange.getMessage().addAttachment("LogFile.log.gz", new DataHandler(Base64.decodeBase64(FileContentBase64),"application/x-gzip"));

但它不起作用。这也不是:

exchange.getIn().addAttachment("LogFile.log.gz", new DataHandler(Base64.decodeBase64(FileContentBase64),"application/x-gzip"));

有一个想法,解决这个问题。

我想通过电子邮件发送此附件。

4

1 回答 1

8

Camel版本 3进行了很多模块化。因此,附件 API已被提取并且必须以不同方式使用,请参阅Camel 3 迁移指南

附件 API (javax.activation)已从camel-attachments JAR移出org.apache.camel.message到扩展中。org.apache.camel.attachment.AttachmentMessage

要使用此 API,您可以通过getMessageExchange 上的方法获取它:

AttachmentMessage am = exchange.getMessage(AttachmentMessage.class); am.addAttachment("myAtt", new DataHandler(...)); 
于 2019-12-06T10:49:43.763 回答