沒有爲DWR異常處理客戶端的文件:DWR異常處理在服務器端
http://directwebremoting.org/dwr/documentation/browser/errors.html
但是我正在尋找一個DWR服務器端異常處理的文檔。基本上我遇到的問題是:詳細錯誤(stacktrace)返回給客戶端,暴露Web應用程序的詳細信息。需要確保沒有將堆棧跟蹤返回給客戶端。
DWR版本:3.0
服務器端異常處理DWR任何指針?謝謝。
沒有爲DWR異常處理客戶端的文件:DWR異常處理在服務器端
http://directwebremoting.org/dwr/documentation/browser/errors.html
但是我正在尋找一個DWR服務器端異常處理的文檔。基本上我遇到的問題是:詳細錯誤(stacktrace)返回給客戶端,暴露Web應用程序的詳細信息。需要確保沒有將堆棧跟蹤返回給客戶端。
DWR版本:3.0
服務器端異常處理DWR任何指針?謝謝。
在這種情況下,我會用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塊中結束,然後由你自己決定下一步做什麼。
我希望這將幫助您:]
基本上我們將異常轉換爲DWR bean,它正在返回給客戶端進行進一步處理。過濾方法是不必要的。 –
貌似在應用程序中,我們在那裏轉換例外DWR bean..hence堆棧信息在客戶端:) –