在骆驼java dsl中,在封送以前未编组的交换(包含附件)时失败:没有MimeBodyPart内容

时间:2019-03-27 21:35:32

标签: apache-camel

我有一个交流,其中包含带有附件的消息。 我发现我无法封送以前未封送过的邮件。

e.g.
.marshal().mimeMultipart()     // ok
.unmarshal().mimeMultipart()   // ok
.marshal().mimeMultipart()     // Fails with "No MimeBodyPart content"

用例: 我需要通过JMS Q将此交换发送到另一个组件。由于JMS无法理解附件,因此我必须先致电.marshal().mimeMultipart(),然后再发送给JMSQ。 然后,接收者必须呼叫.unmarshal().mimeMultipart()来重建带有附件的交换信息。

一切正常-我可以访问附件等。

但是,如果在处理交换时发生故障,我想将交换保存到JMS FailedMessage queue,并在需要时手动重新提交。

失败被“ onException()”捕获。我称流程类为日志内容,检查消息并查看附件...然后返回路由...

如果我将交换直接放在JMS Q上, .to("jms:queue:MyService.FailedMsgQ")

我丢失了附件(不足为奇)。 如果我先尝试将消息.marshal().mimeMultipart()编组到队列中,它就会失败,并显示“没有MimeBodyPart内容”

所需的结果是将交换放入失败的队列(如mimeMultipart),以便可以重新提交。

为什么您不能(重新)编组以前未编组的交换?

0 个答案:

没有答案