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()
这样的东西。
我错过了什么?
答案 0 :(得分:2)
你可以这样做:
exception.getResponse().getStatus()