2016-02-24 80 views
1

ClientErrorException的許多構造函數中的大約一半需要Response.Status。但爲什麼沒有辦法讓它恢復原狀?除了在javax.ws.rs.WebApplicationException#validate(javax.ws.rs.core.Response, javax.ws.rs.core.Response.Status.Family)進行驗證之外,它有沒有其他目的?從ClientErrorException中獲取狀態

我想用它的方式將其擴展

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()

我錯過了什麼?

回答

2

你可以這樣說:

exception.getResponse().getStatus()