我有一个交流,其中包含带有附件的消息。 我发现我无法封送以前未封送过的邮件。
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),以便可以重新提交。
为什么您不能(重新)编组以前未编组的交换?