我有一臺服務器將一組類作爲RESTful服務公開。我知道我們可以使用ExceptionMapper將異常傳遞給客戶端。客戶端和服務器之間共享的檢查異常很少。但是在我的一些服務中,我有幾個檢查異常,這些異常在客戶端JVM中不可用。JAX RS CXF Interceptor用於引發客戶端特定異常
我知道,更改端點以確保正確處理checked-exception可以解決問題。
但是,我想做到這一點,在攔截器層,原因有二:
- 這將是一個地方,我可以處理所有導致檢查的異常的調用。
- 由於目前的發佈日期,這將是一個很大的重構工作。在CXF documentation
看,我明白我必須擴展AbstractPhaseInterceptor
並覆蓋handleMessage()
public class MyOutExceptionInterceptor extends AbstractPhaseInterceptor<Message> {
public AttachmentInInterceptor() {
//Which phase to call here ??
super(Phase.POST_INVOKE);
}
public void handleMessage(Message message) {
//Check from message that it contains an exception of MyCheckedException.class
//Create an exception that client can understand
}
}
我該怎麼辦呢?
在此先感謝。
感謝您的回覆。但是,我在'fault = new Fault(exception)'中得到了一個RuntimeException;'在帶有此代碼的鏈式攔截器中。 – Chris
這是什麼樣的例外? – mucher