2013-10-08 39 views
0

爲什麼我總是在我的異常映射得到的,而不是實際的異常類javax.ws.rs.WebApplicationException:javax.ws.rs.WebApplicationException而不是在澤西島的異常映射實際的異常

@Provider 
public class PaymentExceptionHandler implements ExceptionMapper<Exception> { 

    /* 
    * Maps the Exception object to response Object when any exception is thrown 
    * within the application. 
    */ 
    @Override 
    public Response toResponse(Exception exception) { 
     return Response.status(550) 
       .entity(exception) 
       .build(); 
    } 

} 

我不知道這是否已經回答,我找不到任何。任何幫助,將不勝感激。

回答

0

您需要註冊此PaymentExceptionHandler作爲運動衫集裝箱的運動衫資源才能瞭解此回覆需要發送以防Exception類在回覆中發送。

喜歡投擲new RunTimeExecption(e),運動衫會在對方投擲PaymentExceptionHandler

加載您的PaymentExceptionHandler作爲球衣資源。

我不知道你怎麼樣通過包掃描或其他方式加載你的資源,要做到這一點的一種方法如下所示:

@ApplicationPath("/rest") 
public class AuthResourceLoader extends Application 
{ 
    /* (non-Javadoc) 
    * @see javax.ws.rs.core.Application#getClasses() 
    */ 
    @Override 
    public Set<Class<?>> getClasses() 
    { 
     Set<Class<?>> classes = new HashSet<Class<?>>(); 
     exceptionResource(classes); 
     return classes; 
    } 

    private void exceptionResource(Set<Class<?>> classes) 
    { 
     classes.add(PaymentExceptionHandler.class); 
    } 
}