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