我有一个网络应用程序,我打电话约50-60个休息/肥皂apis。为此,我在JAVA DSL中创建了路由。现在,为了具有默认的应用程序级超时设置,我已经完成了像这样的配置 -
public class DefaultHttpClientConfig implements HttpClientConfigurer { // http4
@Override
public void configureHttpClient(HttpClientBuilder clientBuilder) {
clientBuilder.setDefaultRequestConfig(
RequestConfig.custom()
.setConnectTimeout(1000)
.setSocketTimeout(1000).build());
}
}
我已将此设置为驼峰上下文,如此 -
static CamelContext ctx = new DefaultCamelContext();
static {
try {
HttpComponent httpComponent = ctx.getComponent("http4", HttpComponent.class);
httpComponent.setConnectionTimeToLive(10);
httpComponent.setHttpClientConfigurer(new DefaultHttpClientConfig());
ctx.addRoutes(new DirectRestRouteBuilder());
ctx.start();
} catch (Exception e) {
e.printStackTrace();
}
}
现在在创建单个路由时,我想覆盖这些配置,所以我正在尝试这个,如下所示 -
from("direct:success")
.to("http4://localhost:8089/mockcarrier/success?httpClient.socketTimeout=8000");
然而,似乎没有拾取JAVA DSL中的直接配置。我哪里错了?