我在从camel exchange中的In Message中删除“Host”和“org.apache.cxf.request.uri”标题时遇到问题。我正在使用cxfrs客户端来调用休息终点。但在调用之前我使用了removeHeaders标记并从交换中删除了一些不必要的标题。一些标题被删除。但是我无法删除“Host”和“org.apache.cxf.request.uri”标题。在removeHeaders调用之后,它们会暂时从流中删除。但是当使用cxf rs客户端调用时,它们出现在请求调用头中。以下是我的方案中的示例。
............................... .............................. $ {property.asd} == true&& $ {property.afd} == true
**<to uri="direct:removeUnnecessaryHeaders" />**
<setHeader headerName="CamelCxfRsUsingHttpAPI">
<constant>true</constant>
</setHeader>
<setHeader headerName="CamelHttpMethod">
<constant>PUT</constant>
</setHeader>
<setHeader headerName="CamelHttpPath">
<constant>/partner/managepartnerprofile</constant>
</setHeader>
<to uri="cxfrs:bean:aclient"/>
</when>
.................................. .................................
**<route>
<from uri="direct:removeUnnecessaryHeaders" />
<removeHeaders pattern="CamelCxfRsResponseGenericType|org.apache.cxf.request.uri|CamelCxfMessage|CamelHttpResponseCode|Host" />
</route>**
答案 0 :(得分:0)
我刚做了一些测试,发现这些标题是假设告诉CXF如何使用WebClient构建请求,不应将它们视为HTTP协议标题。
如果您不想将这些标头发送到服务器,可以使用camel-http或camel-http4端点。