什么是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中如何创建和修改数组
May 02 面试题
什么是serialVersionUID
Mar 04 面试题
Oracle中delete,truncate和drop的区别
May 05 面试题
.NET面试10题
Feb 24 面试题
某公司.Net方向面试题
Apr 24 面试题
什么是URL
Dec 13 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
一些Unix笔试题和面试题
Sep 25 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
Dec 30 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
Oct 17 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
Jan 26 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
Oct 13 面试题
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合并数组中相同元素的方法
2014/11/13 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
JS实现的base64加密解密操作示例
2018/04/18 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python Socket使用实例
2017/12/18 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
汽车队司机先进事迹材料
2014/02/01 职场文书
奖学金感谢信
2015/01/21 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
二审代理词范文
2015/05/25 职场文书
公司催款律师函
2015/05/27 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
你真的会用Mysql的explain吗
2022/03/31 MySQL