Mar*_*vin 3 proxy http apache-camel fuseesb
我是骆驼的新手,最终陷入了代理问题。我有这样的路线,用于存储来自对文件的周期性 http 调用的结果:
from("quartz://collector/test?cron=0+0/2+*+?+*+*")
.setHeader(Exchange.HTTP_METHOD, constant("GET"))
.setHeader(Exchange.HTTP_QUERY, constant("Id=50")
.to("http://www.anywebsite/question.php")
.setHeader(Exchange.FILE_NAME,constant("${date:now:yyyyMMddHHmmssSSS}.xml"))
.inOnly(someFolder);
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要指定一个代理(主机+端口)来通过,否则我将在尝试获取信息时陷入困境。我尝试了各种方法,包括从routeBuilder(通过 getContext().setProperties)以及从包裹在“properties/property”标签中的bundle-context.xml 设置“http.proxyHost”和“”http.proxyPort”。我也尝试通过添加到端点(camel-http文档说您可以将其设置为 httpenpoint)来设置&proxyHost=myHost&proxyPort=myPort它。
没有一个起作用..
Il 还尝试从我通过谷歌阅读的帖子中设置一个 http-conduit,例如(根据部署目标选择一个或另一个):
<http-conf:conduit name="*.http-conduit">
<!-- when behind proxy -->
<http-conf:client Connection="close" ConnectionTimeout="3000" ReceiveTimeout="10000" ProxyServer="p-goodwat" ProxyServerPort="3128"/>
<!-- when no proxy -->
<http-conf:client Connection="close" ConnectionTimeout="3000" ReceiveTimeout="10000" />
</http-conf:conduit>
Run Code Online (Sandbox Code Playgroud)
但这也不起作用......而且,我希望能够自动执行此操作,而不必根据安装位置更新camel-context。
那么,您是否找到了一种设置它并动态设置它的方法?
经过几次尝试,我设法让它工作......看起来问题不是来自我的解决方案,但事实上我没有增加捆绑版本......因此,我的解决方案没有被考虑在内。
因此,对我有用的解决方案是从我的routeBuilder 设置上下文的端点,例如: getContext().setProperty("http.proxyHost",10.100.100.1);
getContext().setProperty("http.proxyPort",2111);
现在,它确实有效了。
感谢那些看过的人!
| 归档时间: |
|
| 查看次数: |
10452 次 |
| 最近记录: |