Apache camel 根据SQS消息中的url使用Camel下载文件

Apache camel 根据SQS消息中的url使用Camel下载文件,apache-camel,Apache Camel,我试图使用Camel从SQS队列中读取XML消息,从XML中的特定节点中提取URL,并将该URL处的文件下载到特定目录 我正在使用Spring DSL XML消息如下所示: <command> <path>http://example.com/myfile/here?q=something&param=somethingelse</path> <....> </command> 我怎样才能做到这一点?我可以编写

我试图使用Camel从SQS队列中读取XML消息,从XML中的特定节点中提取URL,并将该URL处的文件下载到特定目录

我正在使用Spring DSL

XML消息如下所示:

<command>
    <path>http://example.com/myfile/here?q=something&param=somethingelse</path>
    <....>
</command>
我怎样才能做到这一点?我可以编写一个处理器来读取SQS消息并下载文件,但似乎使用本机Camel组件应该可以做到这一点。

使用和组件下载文件怎么样

路线可能是这样的

from("aws:xxx").split().xtokenize("//path", 't').to("direct:http");

from("direct:http").setHeader(Exchange.HTTP_URI, simple(${body}).setBody(constant(null).to("http://example.com");
<route id="get-download-url">
  <from uri="aws:xxx"/>
  <split>
    <xtokenize mode="t">//path</xtokenize>
  </split>
  <to uri="direct:http"/>
</route>
<route id="download-file">
  <from uri="direct:http"/>
  <setHeader headerName="CamelHttpUri">
    <simple>${body}</simple>
  </setHeader>
  <setBody><simple></simple></setBody>
  <to uri="http://example.com"/>
</route>
如果使用Spring DSL,它将如下所示

from("aws:xxx").split().xtokenize("//path", 't').to("direct:http");

from("direct:http").setHeader(Exchange.HTTP_URI, simple(${body}).setBody(constant(null).to("http://example.com");
<route id="get-download-url">
  <from uri="aws:xxx"/>
  <split>
    <xtokenize mode="t">//path</xtokenize>
  </split>
  <to uri="direct:http"/>
</route>
<route id="download-file">
  <from uri="direct:http"/>
  <setHeader headerName="CamelHttpUri">
    <simple>${body}</simple>
  </setHeader>
  <setBody><simple></simple></setBody>
  <to uri="http://example.com"/>
</route>

你能不能更具体一点,这是怎么回事?