我正在使用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响应发送给客户端。
答案 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组件。
此致