Search in sources :

Example 1 with Family

use of javax.ws.rs.core.Response.Status.Family in project java-chassis by ServiceComb.

the class GrpcCodec method decodeResponse.

public static Response decodeResponse(Invocation invocation, OperationProtobuf operationProtobuf, HttpClientResponse httpResponse, Buffer buffer) throws Exception {
    // TODO:grpc的错误信息不在标准http status code上体现,而是有自己的code
    Family family = Family.familyOf(httpResponse.statusCode());
    boolean success = Family.SUCCESSFUL.equals(family);
    if (success) {
        return decodeSuccessResponse(invocation, operationProtobuf, buffer);
    }
    // 异常分支
    return null;
}
Also used : Family(javax.ws.rs.core.Response.Status.Family)

Example 2 with Family

use of javax.ws.rs.core.Response.Status.Family in project java-chassis by ServiceComb.

the class VertxRestDispatcher method sendFailureRespDeterminedByStatus.

/**
 * Try to determine response by status code, and send response.
 */
private void sendFailureRespDeterminedByStatus(RoutingContext context) {
    Family statusFamily = Family.familyOf(context.statusCode());
    if (Family.CLIENT_ERROR.equals(statusFamily) || Family.SERVER_ERROR.equals(statusFamily) || Family.OTHER.equals(statusFamily)) {
        context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD).setStatusCode(context.statusCode()).end();
    } else {
        // it seems the status code is not set properly
        context.response().putHeader(HttpHeaders.CONTENT_TYPE, MediaType.WILDCARD).setStatusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()).setStatusMessage(Status.INTERNAL_SERVER_ERROR.getReasonPhrase()).end(wrapResponseBody(Status.INTERNAL_SERVER_ERROR.getReasonPhrase()));
    }
    context.response().close();
}
Also used : Family(javax.ws.rs.core.Response.Status.Family)

Aggregations

Family (javax.ws.rs.core.Response.Status.Family)2