我正在使用带有 Spring DSL 的骆驼 2.10.3。
我正在监视 CSV 文件的目录。每个文件都包含关于去哪里下载东西的信息,以及其他元数据——谁请求它等等。
我使用该文件,现在我想使用 HTTPComponent 下载文件中引用的实体,然后将其保存到磁盘(稍后处理),如下所示:
<route>
<from uri="file:/incoming"/>
<unmarshall ref="csv"/>
<recipientList><simple>${in.body[1]}</simple></recipientList>
<to uri="file:/attachemnts"/>
<to ref="furtherProcessing"/>
</route>
我正在使用收件人列表,因为 URL 是基于 CSV 文件内容的动态的。上述方法不起作用,因为 HTTPComponent 尝试将交换的 in.body (这是 CSV 文件内容的值)发送到 HTTP 服务。
我需要稍后处理 CSV 文件中的值,所以我不能把它们吹走。我第一次尝试解决这个问题是将 CSV 文件中的所有值移动到标题中,然后将正文设置为 null,这样 HTTPComponent 就不会抱怨(即使它没有抱怨,我仍然需要以某种方式保留原始CSV 数据)。这可行,但确实使路线混乱,有很多标题,我必须手动复制每个标题。
似乎我需要某种辅助路径来进行下载,我考虑过使用带有自定义聚合策略的多播,然后一个端点是下载,另一个是空操作,但这似乎并不那么干净任何一个。
任何人都对如何干净地做到这一点有任何建议,我觉得我错过了一些非常简单的东西?