Camel:重定向到参数接收的url

时间:2014-02-11 12:59:47

标签: java spring cxf apache-camel

我正在使用Camel开发一个poxy。客户通过以下网址给我打电话:

http://www.myserver.com/getFile?path=http://www.otherdomain.com/file.txt

我写了一条骆驼路线:

<route id="getFileService">
     ...
     <from uri="bean:getFileProxy" />
     <to uri="..." />
</ route>

如何获取参数“path”并在路径标记<to uri="http://www.otherdomain.com/file.txt" />中动态使用它。

然后我必须将HTTP响应发送给客户端。

1 个答案:

答案 0 :(得分:2)

我不知道你在“getFileProxy”bean中做了什么,但你可以使用camel组件创建一个简单的代理:

from("jetty:http://localhost:8182/proxy")
   .recipientList(simple("${header.path}?bridgeEndpoint=true"));

这将从http://localhost:8182/proxy获取所有请求,并将其转发到path属性中指定的地址。您将需要使用recipientList组件,因为这是在运行时动态解析其端点的唯一组件。

如果需要使用getFileProxy bean,可以在路径上将路径设置为标题,然后在收件人列表中使用它。

请注意,此实现依赖于path属性作为有效的camel组件uri,如果在path属性中指定了常规url,它将使用旧的http组件而不是首选的http4组件。

此致