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

面试题 相关文章推荐
构造器Constructor是否可被override?
Aug 06 面试题
static关键字的用法
Oct 07 面试题
C语言笔试题回忆
Apr 02 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
Feb 10 面试题
如何利用cmp命令比较文件
Apr 11 面试题
linux面试题参考答案(8)
Aug 11 面试题
linux面试题参考答案(9)
Jan 29 面试题
一些Unix笔试题和面试题
Sep 25 面试题
中科软笔试题和面试题
Oct 07 面试题
金鑫耀Java笔试题
Sep 06 面试题
Unix如何在一行中运行多个命令
May 29 面试题
J2EE的优越性主要表现在哪些方面
Mar 28 面试题
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获取post中的json数据的实现方法
2011/06/08 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
对python sklearn one-hot编码详解
2018/07/10 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
抽象类和接口的区别
2012/09/19 面试题
Python面试题集
2012/03/08 面试题
世界地球日活动总结
2015/02/09 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
一文搞懂redux在react中的初步用法
2021/06/09 Javascript