我创建了一个用于进行休息调用的Spring bean。这个bean是一个单身人士。
@Component
public class MyClient {
private transient ResteasyClientBuilder builder;
@PostConstruct
public void init() {
builder = (ResteasyClientBuilder) ClientBuilder.newBuilder();
builder.establishConnectionTimeout(10000, TimeUnit.MILLISECONDS);
builder.socketTimeout(10000, TimeUnit.MILLISECONDS);
}
public void makeHttpCall(String url){
ResteasyClient client = builder.build();
ResteasyWebTarget target = client.target(url);
Builder invocationBuilder = target.request();
Response response = invocationBuilder.post(...);
}
}
MyClient为每个请求创建一个新的ResteasyClient。这个客户端大部分时间都运行良好,但偶尔会抛出RESTEASY004655: Unable to invoke request
异常。谁能给我一些关于为什么会发生这种情况以及如何解决它的提示?非常感谢!
我知道客户端应该被重用,但在我的情况下,我只重用了构建器,这样我就不用担心现在多个线程访问同一个客户端。
如果多个线程同时访问同一个客户端,我将无法调用异常。但是,在这种情况下,会为每个请求创建一个新客户端。