Apache camel 来自exchange标头的驼峰http httpclient超时

Apache camel 来自exchange标头的驼峰http httpclient超时,apache-camel,Apache Camel,我的路由中有一个http组件,我想在其中传递exchange标头的超时值。 我们如何在春季DSL中做到这一点 可以执行以下操作: <to uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/> 不幸的是,不,DSL将在接收任何交换之前创建端点和生产者,因此\u TIMEOUT不是一个可以在运行时更改的参数(以下是) 也就是说,如果您使用的是Camel 2.16+,那么您可以轻松地使用它。在您的情况下,这

我的路由中有一个http组件,我想在其中传递exchange标头的超时值。

我们如何在春季DSL中做到这一点

可以执行以下操作:

<to uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/>

不幸的是,不,
DSL将在接收任何交换之前创建端点和生产者,因此\u TIMEOUT不是一个可以在运行时更改的参数(以下是)

也就是说,如果您使用的是Camel 2.16+,那么您可以轻松地使用它。在您的情况下,这将是:

<toD uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/>

否则,您必须使用:


http://foo.com?httpClient.soTimeout=${in.headers.timeout}
标题

如果我使用Exchange.Http_uri,它仍然会替换我的虚拟uri,对吗?正确,无论在哪里使用Http组件,行为都是一样的-在
toD
接收者列表
谢谢。我可以用这种方式添加超时。我正在设法解决这个问题,但是如果你有更多的参数呢<代码>http://someUrl.com/data?param1=123,param2=abc我把
放在哪里?httpClient.soTimeout
?你读过Camel的介绍吗?参数的数量和顺序没有区别,只需将其视为常规URI:)
<setHeader headerName="theHeader">
    <simple>http://foo.com?httpClient.soTimeout=${in.headers.timeout}</simple>        
</setHeader>
<recipientList>
    <header>theHeader</header>
</recipientList>