从码头到绝对 URL 的骆驼路线
Posted
技术标签:
【中文标题】从码头到绝对 URL 的骆驼路线【英文标题】:Camel Route from Jetty to Absolute URL 【发布时间】:2012-08-17 00:17:31 【问题描述】:我在Apache Karaf
上部署了一个OSGi
捆绑包。我有一个简单的骆驼路线:
<camelContext trace="true" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="jetty:http://0.0.0.0:8282/services?handlers=securityHandler&matchOnUriPrefix=true"/>
<setHeader headerName="CamelHttpQuery">
<constant>wt=xml&rows=1000000&fl=nid,title&fq=sm_vid_Third_parties_with_which_this_organisation_s_content_can_be_shared:%22Indeed%22</constant>
</setHeader>
<to uri="http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/?"/>
<!-- <split>
<xpath>//int[@name='nid']</xpath>
</split>-->
<convertBodyTo type="java.lang.String" />
</route>
</camelContext>
我无法让它工作。当我调用http://localhost:8282/services
时,它应该路由到setHeader
下方指定的uri
。相反,我得到了这个例外:
java.lang.IllegalArgumentException:无效的 uri:/services。 如果您要转发/桥接 http 端点,则启用 bridgeEndpoint 端点上的选项: 端点[http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/]
它说我需要启用网桥端点,但这不是端点,它是我试图指向我的路由的绝对 URL。
我已尝试设置Spring
,如图所示here,但这也不起作用。我也尝试更改此设置:
<to uri="http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/?"/>
到这里:
<to uri="jetty//http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/?"/>
也没有成功。也许有人知道如何从jetty
uri
路由到绝对url
?
【问题讨论】:
能否请您发表一下您是如何解决问题的 【参考方案1】:你试过bridgeEndpoint
吗?如下所述:
http://camel.apache.org/how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html
您的目标网址如下所示:
<to uri="jetty//http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select?bridgeEndpoint=true&throwExceptionOnFailure=false"/>
【讨论】:
我已经以相反的方式解决了这个问题,但无论如何,谢谢,我想我将来会需要它,所以我会尝试 :)【参考方案2】:为我工作:
@Override
public void configure() throws Exception
restConfiguration()
.host("localhost")
.component("jetty")
.port("8085");
rest("/api")
//NEW ROUTE
.get("/getResidences")
.produces("application/json")
//OLD ROUTE
.to("http://localhost:3000/api/residences?bridgeEndpoint=true&throwExceptionOnFailure=false");
注意其余配置中的 .componet("jetty")
【讨论】:
以上是关于从码头到绝对 URL 的骆驼路线的主要内容,如果未能解决你的问题,请参考以下文章