java Apache camel将一个URI路由到另一个URI
是否可以将所有请求直接路由到另一台服务器?例如,将所有这些特定于项目的rest端点localhost:8080/get-something路由到另一个项目端点,如下所示:someIp:8081/get-something 2。比如:
from("localhost:8080/get-something")
.to("someIp:8081/get-something2")
或者这个:
rest()
.path("/get-something")
.get()
.route()
.to("someIp:8081/get-something2")
我尝试了太多方法,但我做不到
# 1 楼答案
我想你想用窃听器,只是根据你的描述
所以你会这样做
“' 来自(“本地主机:8080/获取信息”) .wiretap(“direct:endpoint1”)//将接收交换 .wiretap(“direct:endpoint2”)//将接收交换 .到(实际目的地);//我们将接受交换 … ;
“'
然后
“' 来自(“直接:端点1”) .发送至(MY_SERVER1)
发件人(“直接:endpoint2”) .给(我的服务器2); “'
但需要注意的是,只有通过onPrepareRef属性指定自定义处理器时,这些消息才是完全独立的消息(比如复写)
# 2 楼答案
您可以使用基于http的组件(jetty或undertow)作为消费者(from),使用
matchOnUriPrefix=true
选项,然后使用bridgeEndpoint=true
选项将其发送到http组件例如:
这样,发送到localhost:8080/的任何请求都将被转发到谷歌。com/
试试看http://localhost:8080/在你的浏览器中,你会看到谷歌网页
试试看http://localhost:8080/search?q=camel在你的浏览器中,你会得到“骆驼”搜索的响应
在你的情况下,你可以做:
文件: