我正在尝试使用 JAX-RS WebClient 配置请求级别超时,我不想为每个不同的路径创建不同的 WebClient 实例。有没有办法在不更改 WebClient 实例本身的情况下做到这一点?
类似这样的:
import org.apache.cxf.jaxrs.client.WebClient;
public class testService{
WebClient client;
public void initClient(){
client= WebClient.create("localhost:8080");
}
public void firstRequest(){
WebClient.fromClient(client).path("first").timeout(20).....
}
public void secondRequest(){
WebClient.fromClient(client).path("second").timeout(10)....
}
}
您可以使用 HTTPClientPolicy.setReceiveTimeout 方法,如下所示
public void firstRequest(){
WebClient reqClient = WebClient.fromClient(client).path("first");
ClientConfiguration config = WebClient.getConfig(reqClient);
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setReceiveTimeout(2000L);
config.getHttpConduit().setClient(httpClientPolicy);
}