Java 如何在jersey client 1.8中处理读取超时异常
我正在使用Java 如何在jersey client 1.8中处理读取超时异常,java,jersey-client,Java,Jersey Client,我正在使用jersey 1.8 呼叫外部服务。 这是我的密码 try{ ClientResponse response = webResource.header(HttpHeaders.AUTHORIZATION, encodedHashString).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, formData); }catch(ClientHandlerException
jersey 1.8
呼叫外部服务。
这是我的密码
try{
ClientResponse response = webResource.header(HttpHeaders.AUTHORIZATION, encodedHashString).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, formData);
}catch(ClientHandlerException che){
//handelling code here
{
当发生读取超时异常时,它给出clienthandler异常
,而底层异常是SocketTimeoutException
。但这里的问题是,我不能仅仅说,因为它的ClientHandlerException
是一个超时异常,因为这个异常可能发生在其他与客户端相关的错误上。
处理它的确切代码是什么,如果是读取超时异常,我需要做一些处理。尝试以下操作:
try {
ClientResponse response = webResource.header(HttpHeaders.AUTHORIZATION, encodedHashString).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, formData);
} catch(ClientHandlerException ex) {
handleClientHandlerException(ex);
}
private void handleClientHandlerException(ClientHandlerException ex) throws ClientHandlerException {
if (ex.getCause() instanceof SocketTimeoutException) {
// handelling SocketTimeoutException code here
}
throw ex;
}
在HandleClientHandlexception
中,如果原因不是SocketTimeoutException
,您还可以尝试类似于apache commons lang的方法来获取根本原因。您可以使用guava中的方法