什么是Remote Module


Posted in 面试题 onJune 10, 2016
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){
//处理成功
}
})

Tags in this post...

面试题 相关文章推荐
Java的for语句中break, continue和return的区别
Dec 19 面试题
JAVA和C++区别都有哪些
Mar 30 面试题
怎样在程序里获得一个空指针
Jan 24 面试题
请解释virtual关键字的含义
Jun 17 面试题
上海中网科技笔试题
Feb 19 面试题
C#面试常见问题
Feb 25 面试题
介绍一下Linux内核的排队自旋锁
Aug 27 面试题
传统软件工程与面向对象的软件工程有什么区别
May 31 面试题
写clone()方法时,通常都有一行代码,是什么?
Oct 31 面试题
同步和异步有何异同,在什么情况下分别使用他们
Apr 09 面试题
当文件系统受到破坏时,如何检查和修复系统?
Mar 09 面试题
JAVA软件工程师测试题
Jul 25 面试题
AJAX的全称是什么
Nov 06 #面试题
Prototype是怎么扩展DOM的
Oct 01 #面试题
GWT都有什么特性
Dec 02 #面试题
JavaScript获取当前url根目录(路径)
Feb 19 #面试题
ajax是什么及其工作原理
Feb 08 #面试题
Ajxa常见问题都有哪些
Mar 26 #面试题
如何利用XMLHTTP检测URL及探测服务器信息
Nov 10 #面试题
You might like
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
js几个验证函数代码
2010/03/25 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python Queue模块详解
2014/11/30 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
python使用插值法画出平滑曲线
2018/12/15 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
护士实习生自我鉴定范文
2013/12/10 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
营销总监岗位职责
2014/09/16 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
英文辞职信范文
2015/05/13 职场文书
医院见习总结
2015/06/24 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server