什么是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...

面试题 相关文章推荐
比较基础的php面试题及答案-编程题
Oct 14 面试题
char型变量中能不能存贮一个中文汉字
Jul 08 面试题
C语言面试题
May 19 面试题
下面这个程序执行后会有什么错误或者效果
Nov 03 面试题
介绍一下游标
Jan 10 面试题
分布式数据库需要考虑哪些问题
Dec 08 面试题
OLEDBConnection和SQLConnection有什么区别
May 31 面试题
了解AppleShare protocol(AppleShare协议)吗
Aug 28 面试题
C#中类(class)与结构(struct)的异同
Nov 03 面试题
Solaris操作系统的线程机制
Jul 28 面试题
介绍下Java中==和equals的区别
Sep 01 面试题
J2EE面试题大全
Aug 06 面试题
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
php4与php5的区别小结(配置异同)
2011/12/20 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
使用js实现数据格式化
2014/12/03 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
Vue computed计算属性的使用方法
2017/07/14 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
Python迭代器和生成器介绍
2015/03/06 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python删除某个字符
2018/03/19 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
Python中修改字符串的四种方法
2018/11/02 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
python实现对输入的密文加密
2019/03/20 Python
python 利用zmail库发送邮件
2020/09/11 Python
小学生演讲稿
2014/01/12 职场文书
商场主管竞聘书
2014/03/31 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
民事调解书范文
2015/05/20 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
python获取字符串中的email
2022/03/31 Python