0
でJava DSLでRequestConfigを使用してソケットタイムアウトを追加
だから、私は基本的にこの方法を使用してthis-http4クライアントキャメル
from("direct:send_success")
.to("http4://localhost:8089/mock/success?httpClient.socketTimeout=1000");
のように見えますroute
持って、私は1秒のソケットタイムアウトを適用することができますよ成功しました。私はこのルートを呼び出すためにProducerTemplate
を使用しています。これは大丈夫です。しかし、私は
from("direct:send_success")
.to("http4://localhost:8089/mock/success");
ツー・ルートとルートの呼び出し
ProducerTemplate pt = ctx.createProducerTemplate();
Exchange ex = pt.send("direct:send_success", exOb -> {
HttpComponent httpComp = exOb.getContext().getComponent("http4", HttpComponent.class);
exOb.getContext().getComponent("http4", HttpComponent.class).setHttpClientConfigurer(httpClientBuilder -> {
HttpClientBuilder
.create()
.setDefaultRequestConfig(requestConfigWithTimeout(1000))
.build();
});
});
ツー・タイムアウト設定が適用されていないrequestConfigWithTimeout()
private static RequestConfig requestConfigWithTimeout(int timeoutInMilliseconds) {
return RequestConfig.copy(RequestConfig.DEFAULT)
.setSocketTimeout(timeoutInMilliseconds)
.build();
}
AS-方法を変更したとき。どこが間違っていますか?
リクエストヘッダにcxfの 'ClientPolicy'を使ってSOAPエンドポイントに対しても同じことができましたので、ここでも回避策があると思いました。とにかく、助けてくれてありがとう。 – Abhishek