从ClientErrorException获取状态

时间:2016-02-24 17:40:00

标签: java web-services jax-rs http-response-codes

ClientErrorException的许多构造函数中约有一半采用Response.Status。但为什么没有办法让它回来?除了在javax.ws.rs.WebApplicationException#validate(javax.ws.rs.core.Response, javax.ws.rs.core.Response.Status.Family)验证之外,它没有任何其他目的吗?

我认为使用它的方式是扩展它

public class WhateverInvalidInRequestException extends ClientErrorException {

    public WhateverInvalidInRequestException (String message) {
        super(message, Response.Status.BAD_REQUEST);
    }
}

然后对所有子类使用单个ExceptionMapper,这非常方便

@Provider
public class ClientErrorExceptionMapper implements ExceptionMapper<ClientErrorException> {

    @Override
    public Response toResponse(ClientErrorException exception) {
        return Response.status(exception.getStatus()).entity(exception.getMessage()).build();
    }
}

但是没有exception.getStatus()这样的东西。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

exception.getResponse().getStatus()