这是我第一次尝试骆驼,可能会遗漏一些明显的东西,所以请保持友善。
我正在尝试纠正Camel问题,该问题看到带有动态URI元素的HTTP端点使套接字处于CLOSE_WAIT状态。
在查看问题并在RedHat中进行了潜在的修复/变通之后,我想按照他们所说的来解决我的问题。
但是我不确定如何正确地在我的代码上实现,因为骆驼函数recipientList(...)
似乎引起了我的问题。
recipientList是因为to()
仅接受静态端点URI。
问题代码
.when(/* ID header not null */)
.setHeader(Exchange.HTTP_METHOD, constant("PUT"))
// This recipientList is causing the issue
.recipientList(simple(endpoint + '/' + ID_Placeholder + endpointParams))
.end()
试图修复
文档提出以下解决方案:
不要直接在端点上指定URI,而应使用 端点仅用于指定Camelparameters,并使用 交换标头CamelHttpUri(在Java中,Exchange.HTTP_URI)。
在我看来,我应该将recipientList
行替换为以下内容:
.setHeader(Exchange.HTTP_URI, simple(endpoint + '/' + ID_HEADER_PLACEHOLDER + endpointParams))
但是,我不确定数据将如何分发?