@Override public boolean isRetriableException(Throwable e, boolean sameServer) { boolean retriable = isPresentAsCause(e); if (!retriable) { if (e instanceof InvocationException) { if (((InvocationException) e).getStatusCode() == 503) { return true; } } } return retriable; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("InvocationException: code="); sb.append(getStatusCode()); sb.append(";msg="); sb.append(getErrorData()); return sb.toString(); } }
protected boolean isFailedResponse(Response resp) { if (resp.isFailed()) { if (InvocationException.class.isInstance(resp.getResult())) { InvocationException e = (InvocationException) resp.getResult(); return e.getStatusCode() == ExceptionFactory.CONSUMER_INNER_STATUS_CODE || e.getStatusCode() == 503; } else { return true; } } else { return false; } }
@Override protected boolean isFailedResponse(Response resp) { if (resp.isFailed()) { if (InvocationException.class.isInstance(resp.getResult())) { InvocationException e = (InvocationException) resp.getResult(); return e.getStatusCode() == ExceptionFactory.PRODUCER_INNER_STATUS_CODE; } else { return true; } } else { return false; } } }
@Override protected boolean isFailedResponse(Response resp) { if (resp.isFailed()) { if (InvocationException.class.isInstance(resp.getResult())) { InvocationException e = (InvocationException) resp.getResult(); return e.getStatusCode() == ExceptionFactory.CONSUMER_INNER_STATUS_CODE; } else { return true; } } else { return false; } } }
protected void onFailure(RoutingContext context) { LOGGER.error("edge server failed.", context.failure()); HttpServerResponse response = context.response(); if (context.failure() instanceof InvocationException) { InvocationException exception = (InvocationException) context.failure(); response.setStatusCode(exception.getStatusCode()); response.setStatusMessage(exception.getErrorData().toString()); response.end(); } else { response.setStatusCode(Status.BAD_GATEWAY.getStatusCode()); response.setStatusMessage(Status.BAD_GATEWAY.getReasonPhrase()); response.end(); } } }
/** * Use routingContext to send failure information in throwable. */ private void sendExceptionByRoutingContext(RoutingContext context, Throwable e) { if (InvocationException.class.isInstance(e)) { InvocationException invocationException = (InvocationException) e; context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD) .setStatusCode(invocationException.getStatusCode()).setStatusMessage(invocationException.getReasonPhrase()) .end(wrapResponseBody(invocationException.getReasonPhrase())); } else { context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD) .setStatusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()).end(wrapResponseBody(e.getMessage())); } context.response().close(); }
response.setStatusCode(exception.getStatusCode()); response.setStatusMessage(exception.getErrorData().toString()); response.end();
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("InvocationException: code="); sb.append(getStatusCode()); sb.append(";msg="); sb.append(getErrorData()); return sb.toString(); } }
@Override public boolean isRetriableException(Throwable e, boolean sameServer) { boolean retriable = isPresentAsCause(e); if (!retriable) { if (e instanceof InvocationException) { if (((InvocationException) e).getStatusCode() == 503) { return true; } } } return retriable; }
protected boolean isFailedResponse(Response resp) { if (resp.isFailed()) { if (InvocationException.class.isInstance(resp.getResult())) { InvocationException e = (InvocationException) resp.getResult(); return e.getStatusCode() == ExceptionFactory.CONSUMER_INNER_STATUS_CODE || e.getStatusCode() == 503; } else { return true; } } else { return false; } }
@Override protected boolean isFailedResponse(Response resp) { if (resp.isFailed()) { if (InvocationException.class.isInstance(resp.getResult())) { InvocationException e = (InvocationException) resp.getResult(); return e.getStatusCode() == ExceptionFactory.CONSUMER_INNER_STATUS_CODE; } else { return true; } } else { return false; } } }
@Override protected boolean isFailedResponse(Response resp) { if (resp.isFailed()) { if (InvocationException.class.isInstance(resp.getResult())) { InvocationException e = (InvocationException) resp.getResult(); return e.getStatusCode() == ExceptionFactory.PRODUCER_INNER_STATUS_CODE; } else { return true; } } else { return false; } } }
/** * Use routingContext to send failure information in throwable. */ private void sendExceptionByRoutingContext(RoutingContext context, Throwable e) { if (InvocationException.class.isInstance(e)) { InvocationException invocationException = (InvocationException) e; context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD) .setStatusCode(invocationException.getStatusCode()).setStatusMessage(invocationException.getReasonPhrase()) .end(wrapResponseBody(invocationException.getReasonPhrase())); } else { context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD) .setStatusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()).end(wrapResponseBody(e.getMessage())); } context.response().close(); }
response.setStatusCode(exception.getStatusCode()); response.setStatusMessage(exception.getErrorData().toString()); response.end();