Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存或检索以前的交换正文_Java_Apache Camel - Fatal编程技术网

Java 保存或检索以前的交换正文

Java 保存或检索以前的交换正文,java,apache-camel,Java,Apache Camel,我正在进行我的第一个骆驼项目,如果这是显而易见的或令人困惑的,我深表歉意 该应用程序是一项简单的服务,happy path是从文件夹中收集PDF,获取要发送的电子邮件地址,生成并发送电子邮件(使用Velocity模板,将PDF作为附件),记录电子邮件已发送,并删除文件 但我正在尝试构建一些重试逻辑,将文件移动到单独的文件夹中,以便稍后重新加载 我试图解决的问题是,Velocity组件用电子邮件正文覆盖exchange正文,如果我用文件使用者组件结束路由,则此电子邮件正文将替换PDF内容 (我认为

我正在进行我的第一个骆驼项目,如果这是显而易见的或令人困惑的,我深表歉意

该应用程序是一项简单的服务,happy path是从文件夹中收集PDF,获取要发送的电子邮件地址,生成并发送电子邮件(使用Velocity模板,将PDF作为附件),记录电子邮件已发送,并删除文件

但我正在尝试构建一些重试逻辑,将文件移动到单独的文件夹中,以便稍后重新加载

我试图解决的问题是,Velocity组件用电子邮件正文覆盖exchange正文,如果我用文件使用者组件结束路由,则此电子邮件正文将替换PDF内容

(我认为我不能在文件生成器组件上使用'move'参数,因为我使用的是两个重试文件夹-如果路由中的后续步骤失败,我不想重新发送电子邮件。)


我可以将文件内容复制到exchange的另一部分,然后在移动文件之前将其还原,但这让我感觉相当不舒服。在继续处理文件之前,是否有办法在exchange副本上运行电子邮件组件?或者以其他方式获取早期版本的exchange正文?

如果电子邮件发送失败,您可能只想访问旧邮件正文以访问文件对象。
如果我是对的,您可以将文件对象存储到exchange属性中,然后您可以随时访问它。

谢谢,我在上一段中提到了这一点。但这有点尴尬,因为我需要确保它在我的路线的不同点被恢复和重新保存。所以我很好奇,这是否是一个常见的问题,有一个既定的(更好的)解决方案。骆驼有一个选择,使用原始信息的死信,但它不支持其他骆驼处理器。如果您只想将PDF移动到其他地方,以便在出现故障时可以访问这些文件,则将消息多播到seda路由和velocity模板路由。这样,两条路由都将具有消息的副本。