DWR中有一些全局的处理器(一个错误相关的,叫做errorHandler,另一个警告相关的,叫做warningHandler)。DWR会默认指定一些全局处理器。你可以这样的改变全局级别的处理器:DWREngine.setErrorHandler(handler);你也可以指定单次调用和批量调用的错误和警告处理。例如,在调用元数据中:Remote.method(params,{callback:function(data){...},errorHandler:function(errorString,exception){...}});或者,在批量元数据中:DWREngine.beginBatch();Remote.method(params,function(data){...});//其他的远程调用DWREngine.endBatch({errorHandler:function(errorString,exception){...}});异常DWR可以转换异常,这样他们会变成Javascript中的错误(他们可以被抛出,因为这可能在异步调用中发生)。
例如,如果我们远程调用下面的Java类:publicclassRemote{publicStringgetData(){thrownewNullPointerException("message");}}那么在Javascript中我们加入下面这些:functioneh(msg){alert(msg);}{DWREngine.setErrorHandler(eh);Remote.getData(function(data){alert(data);});结果会通过eh()错误处理器调用alert窗口的,显示消息–例如调用异常的getMessage()得到的消息。找出更多的信息我们可以把整个异常传地到Javascript中。如果在dwr.xml中加入转换异常本身的能力:<convertconverter="bean"match="my.special.FunkyException"/>在这里例子中FunkyException被指定,因为它不仅仅包括一个消息,它还包括一些关于异常的额外数据。例如,SQLException包含错误号,SAX异常包含错误的行和列等等。
所以我们可以把上面的例如改为:publicclassRemote{publicStringgetData(){Datewhen=newDate();thrownewFunkyException("message",when);//FunkyException有一个getWhen()方法}}然后在Javascript中是这样的:functioneh(msg,ex){alert(msg",date="ex.when);}DWREngine.setErrorHandler(eh);Remote.getData(function(data){alert(data);});结果会是一个eh()错误处理器调用的alert框,上面有这些信息:"message,date=MonJan01200810:00:00GMT0100"被传递到错误处理器的ex对象会包含异常在服务端的所有属性,但是异常栈信息没有。DWR和Spring让DWR和Spring一起工作的步骤1.确认你用的是最新版的DWR。Spring创造器已经有了变化,所以你最好检查一下DWR的最新版本。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25046-16.html
美国的最终目的就是把世界上所有的大国分割成小国
那蛆就绝对不会只“傻呼呼的”呆在一个“房子”里
中国军方的处置还是得当的