Apache camel 无法在驼峰http组件URI上设置协议版本
要禁用HTTP连接持久性,我想使用HTTP组件在我的一个Apache Camel路由上强制实施HTTP协议1.0 在Camel之后,我尝试使用以下URI:Apache camel 无法在驼峰http组件URI上设置协议版本,apache-camel,apache-httpclient-4.x,apache-commons-httpclient,Apache Camel,Apache Httpclient 4.x,Apache Commons Httpclient,要禁用HTTP连接持久性,我想使用HTTP组件在我的一个Apache Camel路由上强制实施HTTP协议1.0 在Camel之后,我尝试使用以下URI: http://localhost:8888/foo?httpClient.protocolVersion=HTTP/1.0 但是,骆驼上下文初始化失败,出现ResolveEndpointFailedException,消息为: Unknown parameters=[{protocolVersion=HTTP/1.0}] 我假设proto
http://localhost:8888/foo?httpClient.protocolVersion=HTTP/1.0
但是,骆驼上下文初始化失败,出现ResolveEndpointFailedException,消息为:
Unknown parameters=[{protocolVersion=HTTP/1.0}]
我假设protocol version参数是可用的,因为。有趣的是,apachecamel文档中的soTimeout示例运行良好
我尝试了http和http4组件。我使用ApacheCamel 2.10.4。http组件具有用户代理Jakarta Commons HttpClient/3.1
我知道我也可以尝试使用http组件的httpClientConfigurer和/或clientConnectionManager参数,但更愿意使用不需要自定义代码的解决方案
提前感谢您的帮助 我想出了以下解决方案 在http组件URL上,我设置了一个自定义的
httpClientConfigurer
:
http://localhost:8080/foo?httpClientConfigurer=myHttpClientConfigurer
其中myHttpClientConfigurer
是一个bean,其实现类似于:
public class Http10ClientConfigurer implements HttpClientConfigurer {
@Override
public void configureHttpClient(HttpClient httpClient) {
if (httpClient.getParams() != null) {
httpClient.getParams().setVersion(new HttpVersion(1, 0));
} else {
// Could not set HTTP 1.0 version on httpClient
}
}
}