服务器端的DWR异常处理

时间:2012-05-09 20:13:43

标签: exception-handling dwr server-side-validation

客户端有DWR异常处理文档:

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

但我正在寻找DWR Server端异常处理的文档。基本上我遇到的问题是:将详细错误(stacktrace)返回给客户端,公开Web应用程序详细信息。需要确保没有堆栈跟踪返回给客户端。

DWR版本:3.0

有关DWR的服务器端异常处理的任何指针?感谢。

1 个答案:

答案 0 :(得分: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块中,然后由您决定下一步该做什么。

我希望这会对你有所帮助:]