什么是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 session
Apr 21 面试题
六道php面试题附答案
Jun 05 面试题
写出程序把一个链表中的接点顺序倒排
Apr 28 面试题
strstr()的简单实现
Sep 26 面试题
在什么时候需要使用"常引用"
Dec 31 面试题
必须要使用游标的SQL语句有那些
May 07 面试题
Oracle中delete,truncate和drop的区别
May 05 面试题
软件设计的目标是什么
Dec 04 面试题
Ajax主要包含了哪些技术
Jun 12 面试题
什么是lambda函数
Sep 17 面试题
写clone()方法时,通常都有一行代码,是什么?
Oct 31 面试题
String、StringBuffer、StringBuilder有区别
Sep 18 面试题
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
模仿OSO的论坛(一)
2006/10/09 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
分享php邮件管理器源码
2016/01/06 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
python实现的重启关机程序实例
2014/08/21 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
numpy自动生成数组详解
2017/12/15 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
Java servlet面试题
2012/03/04 面试题
幼儿园教师演讲稿
2014/05/06 职场文书
倡议书格式及范文
2015/04/29 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android