2014-11-21 62 views
0

我想使用Camel从SQS队列中读取XML消息,从XML中的特定节点中拉出URL,然后下载该文件指向特定目录的网址。使用Camel根据SQS消息中的url下载文件

我正在使用Spring DSL。

的XML消息看起来是这样的:

<command> 
    <path>http://example.com/myfile/here?q=something&param=somethingelse</path> 
    <....> 
</command> 

我怎样才能做到这一点? (我可以编写一个处理器来读取SQS消息并下载文件,但看起来应该可以使用本地Camel组件)。

回答

0

如何使用splittercamel-http组件来下载文件。

路线可能喜欢这个

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"); 

如果使用了Spring DSL,它看起来像这样

<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> 
+0

你能成为一个更具体一点,如何这可能会奏效? – 2014-11-24 03:08:52