从 ClientErrorException 获取状态
Get the status from ClientErrorException
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()
.
我错过了什么?
您可以这样获取:
exception.getResponse().getStatus()
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()
.
我错过了什么?
您可以这样获取:
exception.getResponse().getStatus()