我的路由中有一个http组件,我希望从交换标头传递超时值。 http://foo.com?httpClient.soTimeout=5000
我们如何在Spring DSL中做到这一点。
可以做类似的事情:
<to uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/>
答案 0 :(得分:1)
不幸的是,不,<to>
DSL将在收到任何交换之前创建端点和生产者,而对于HTTP组件,SO_TIMEOUT不是您可以在运行时更改的参数(此处为a list of what you can change })。
话虽如此,如果您使用的是Camel 2.16+,您可以使用Dynamic To endpoint轻松完成。在你的情况下:
<toD uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/>
否则,您必须使用Dynamic Recipient List EIP:
<setHeader headerName="theHeader">
<simple>http://foo.com?httpClient.soTimeout=${in.headers.timeout}</simple>
</setHeader>
<recipientList>
<header>theHeader</header>
</recipientList>