什么是Remote Module

AJAX面试题专栏

GWT没有这个概念,这个概念是Cypal插件定义的,它其实就是指GWT访问远程服务的代码,共有三个类:
XXXService:这是远程服务的定义接口,定义暴露的接口方法。该方法的实现在XXXServiceImpl中实现,同时该类需要通过@RemoteServiceRelativePath定义该服务的url路径名,由于XXXServiceImpl其实就是一个Servlet,所以这个路径会在web.xml的url-pattern用到
XXXServiceAsync:该接口是XXXService的副本,它的作用是当Java(最终应该说是javascript)调用 XXXService后,该接口提供一个回调,所以该接口的方法定义比XXXXService的方法定义多了个 AsyncCallbak接口,该接口定义了两个方法:
onFailure(Throwable caught)//失败时调用
onSuccess(T result)//成功时调用
XXXServiceImpl:这是具体类,这就是具体实现远程接口的地方,可以在这里实现业务逻辑,访问ejb,访问web service等等
除了XXXServiceImpl这几个类外,其它两个接口都不需要我们实现,GWT会通过动态代理来实现这两个接口,所以那两个接口只要定义就可以了
那如何调用Remote Module呢?
调用Remote Module需要使用到XXXServiceAsync副本接口,首先需要通过GWT生成两个接口的动态代理:
XXXServiceAsync service = GWT.create(XXXService.class);
然后就可以调用了,在相关的界面事件处理的地方调用XXXServiceAsync的方法,该方法比XXXService多了一个AsyncCall回调参数,这是我们需要实现的类:
service.服务方法(new AsyncCallback(){
//该类可以定义成匿名类
public void onFailure(Throwable caught){
//处理失败
}
public void onSuccess(T result){
//处理成功
}
})

同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

新一篇:GWT都有什么特性?
旧一篇:什么是GWT的Entry Point

你有答案? 你对以上面试题有意见? 你想发表你的见解? 写下来吧!你的分享将会让很多人受益!

相关面试题

·如何利用XMLHTTP检测URL及探测服务器信息
·Ajxa常见问题都有哪些?
·ajax是什么及其工作原理?
·GWT都有什么特性?
·什么是Remote Module

版权声明:本站大部分内容为原创! 另有少部分内容整理于网络,如需转载本站内容或关切版权事宜请联系站长。未经允许,严禁复制转载本站内容,否则将追究法律责任。