有没有办法为 JAX-RS WebClient 配置请求级别超时?

问题描述 投票:0回答:1

我正在尝试使用 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)....
}


}
java jax-rs
1个回答
0
投票

您可以使用 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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.