2012-05-09 174 views
0

沒有爲DWR異常處理客戶端的文件:DWR異常處理在服務器端

http://directwebremoting.org/dwr/documentation/browser/errors.html

但是我正在尋找一個DWR服務器端異常處理的文檔。基本上我遇到的問題是:詳細錯誤(stacktrace)返回給客戶端,暴露Web應用程序的詳細信息。需要確保沒有將堆棧跟蹤返回給客戶端。

DWR版本:3.0

服務器端異常處理DWR任何指針?謝謝。

+0

貌似在應用程序中,我們在那裏轉換例外DWR bean..hence堆棧信息在客戶端:) –

+1

回答

0

在這種情況下,我會用try/catch塊封裝異常。 問題是:你應該在哪裏做到這一點?

那麼,DWR有一個Filter機制,它很像Java Servlet API中的過濾器。

你可以寫這樣的事情:

public class ExceptionFilter implements org.directwebremoting.AjaxFilter { 
    public Object doFilter(Object obj, Method method, Object[] params, AjaxFilterChain chain) throws Exception { 
    Object res; 
    try{ 
     res = chain.doFilter(obj, method, params); 
    } catch(Exception e){ 
     // throw your Exception with no "extra" data 
     throw new RuntimeException(); 
    } 
    return res; 
    } 
} 

你可能需要做的的dwr.xml文件中的一些配置(這是我留給你的閱讀:http://directwebremoting.org/dwr/documentation/server/configuration/dwrxml/filters.html

(編輯1) 一些更多的解釋:

這是做什麼是攔截DWR遠程調用,並轉發到執行鏈上的調用。我添加到該調用(chain.doFilter)是一個try/catch塊;如果你的代碼應該拋出任何異常,它將在catch塊中結束,然後由你自己決定下一步做什麼。

我希望這將幫助您:]

+0

基本上我們將異常轉換爲DWR bean,它正在返回給客戶端進行進一步處理。過濾方法是不必要的。 –