我创建了一个小客户端api来连接到专有的类似休息的服务。我使用org.apache.cxf.jaxrs.client.WebClient
进行连接。在此客户端,我致电get()
和post()
。
问题是如果服务不可用或速度慢(我将超时设置为10秒),我只会得到javax.ws.rs.ProcessingException
类型的RuntimeException。但我需要一个检查异常的各种连接问题,让api的用户对它们做出反应。怎么做?
以下是配置WebClient客户端的代码:
private void configureClient() {
ClientConfiguration config = WebClient.getConfig(client);
HTTPConduit http = (HTTPConduit) config.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(TIMEOUT);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
}
答案 0 :(得分:1)
您可以使用javax.ws.rs.WebApplicationException, java.net.ConnectException
来捕获与连接相关的异常(虽然我不记得确切的异常类)和javax.ws.rs.client.ClientException
来捕获其他JAXRS异常,例如400 415等。