2012-05-09 117 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,它正在返回给客户端进行进一步处理。过滤方法是不必要的。 –