我的Camel路由的目标是从队列中读取消息并将每个消息正文的内容作为文件写入目录。它不仅仅是以下内容:
from("wmq:..")
.to("/some/path");
邮件正文始终是文本。 然而,我不希望Camel将其解释为文本 - 相反,每个消息体应该被视为写入文件系统的二进制数据,而不对其应用任何更改。
我的问题的背景是有很多生产者写入队列。队列中的消息总是文本的,但具有不同的编码和不同的消息头(或缺少它们)。问题是最终作为/some/path
中的文件的一些(非unicode)消息突然得到了Camel前面的UTF BOM,而其他人完全没问题。我的假设是,这与我无法控制的传入消息的异构消息头有关。
如何强制Camel只将消息的内容字节写入文件而不对其进行任何更改?
修改 我问了一个错误的问题,或者至少我以错误的方式问过它。我会再尝试一下略有不同的措辞:
在Camel中,是否可以创建一条路由来获取队列消息的主体并将它们写入文件系统,...
路由应该是健壮的,无论你抛出什么样的队列消息,它只是将内容写入文件系统。
如果这是可能的,我上面发布的简单路线是否已经这样做,或者是否有必要实施其他措施?