文档章节

GWT的RPC调用

johnnyky
 johnnyky
发布于 2015/06/12 14:43
字数 502
阅读 19
收藏 0
首先在客户端,需要定义一个接口(这个接口的实现类则在服务器端)。这个接口要实现GWT RemoteService 接口。你可以在这个接口里面定义你需要的业务方法。另外你还可以通过一个annotation 来定义子路径:
package com.google.gwt.sample.stockwatcher.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
 
@RemoteServiceRelativePath("stockPrices")//子路径
public interface StockPriceService extends RemoteService {
 //客户端需要的业务方法
 StockPrice[] getPrices(String[] symbols);
}


 

实现类如下:

package com.google.gwt.sample.stockwatcher.server;

  

import com.google.gwt.sample.stockwatcher.client.StockPrice;

import com.google.gwt.sample.stockwatcher.client.StockPriceService;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

  

public class StockPriceServiceImpl extends RemoteServiceServlet implements StockPriceService {

  

 public StockPrice[] getPrices(String[] symbols) {

   // TODO Auto-generated method stub

   return null;

 }

  

}

接下来,要到web.xml中配置servlet

 

 <servlet>

   <servlet-name>stockPriceServiceImpl</servlet-name>

   <servlet-class>com.google.gwt.sample.stockwatcher.server.StockPriceServiceImpl</servlet-class>

 </servlet>

  

 <servlet-mapping>

   <servlet-name>stockPriceServiceImpl</servlet-name>

   <url-pattern>/stockwatcher/stockPrices</url-pattern>

 </servlet-mapping>

 

为了能进行异步调用,还要在客户端新增一个接口:

package com.google.gwt.sample.stockwatcher.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface StockPriceServiceAsync {

 void getPrices(String[] symbols, AsyncCallback<StockPrice[]> callback);

}

注意几点,这个接口的命名需要遵循规范:同步接口后面加Async

里面的方法要遵循规范:方法个数和名称完全一样,但是返回值一律没有了(因为是异步的),同时参数列表的最后,增加一个AsyncCallback,这是个泛型的容器类,里面的类别就是同步方法的返回类。这用来调用完成时做些处理。

 

接下来是真正调用的类,这个类命名没什么规定,但是要记得他是在client端的,因此有些限制。

 private ArrayList<String> stocks = new ArrayList<String>();

//创建一个代理,通过这个代理去访问后台的东西

private StockPriceServiceAsync stockPriceSvc = GWT.create(StockPriceService.class);

  

private void refreshWatchList() {

   // Initialize the service proxy.

   if (stockPriceSvc == null) {

     stockPriceSvc = GWT.create(StockPriceService.class);

   }

  

   // 实现一个匿名的Callback类

   AsyncCallback<StockPrice[]> callback = new AsyncCallback<StockPrice[]>() {

     public void onFailure(Throwable caught) {

       // TODO: Do something with errors.

     }

  

     public void onSuccess(StockPrice[] result) {

       updateTable(result);

     }

   };

  

   // 真正的调用

   stockPriceSvc.getPrices(stocks.toArray(new String[0]), callback);

 }

我们注意到,真正的调用代码上并没有出现url,那么GWT的客户端如何得知要访问哪个servlet?答案就在同步interfaceannotation中,看蓝色字体表示的单词就明白了。


本文转载自:http://blog.sina.com.cn/s/blog_6df370b70100q78g.html

共有 人打赏支持
下一篇: JDBC测试用例
johnnyky
粉丝 3
博文 67
码字总数 3719
作品 0
无锡
程序员
私信 提问
OfficeFloor 1.3.0 发布,IoC 框架

OfficeFloor 是一个 IoC 2.0 的实现,主要是聚焦于方法的依赖注入而不是对象。OfficeFloor 还拥有一个基于Eclipse的图形化配置插件,如下图所示: 该版本集成了 GWT 用于支持直接在 POJO 方法...

红薯
2011/06/19
629
1
使用GWT简化AJAX开发

Google Web工具包(GWT)是一种Java开发框架,它力求简化AJAX应用程序的开发。GWT让开发人员可以使用常用的Java开发工具,开发及调试用 Java开发的AJAX应用程序,并且把同一应用程序作为客户端...

红薯
2009/01/17
1K
1
Google GWT的RPC原理浅析

主要是为了转发个帖子,Mark一下。 工作的时候遇到个问题,打包的war包部署到线上环境时发现post请求都发到了cdn.xx.com去了,这才产生了想法。 整个项目使用Google GWT的框架进行开发,GWT...

来吧
2013/09/12
0
0
异步RESTful客户端--GWT-REST

GWT-REST是一个用于GWT应用程序的异步RESTful客户端实现。GWT-REST可以与GWT-RPC一起使用或者代替它。

匿名
2008/09/13
2.9K
0
Google Web工具包 GWT v1.5.3 发布

Google Web 工具包 (GWT) 通过允许开发人员用 Java 编程语言快速构建和维护复杂但高性能的 JavaScript 前端应用程序来减轻该负担。 有了 Google Web 工具包 (GWT),可以使用 Java 编程语言编...

红薯
2008/12/17
613
0

没有更多内容

加载失败,请刷新页面

加载更多

C4C销售订单行项目价格维护方法

需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域。 如下图所示: 下面是具体配置。 Business Configuration里,点击Sales Order的配置: ...

JerryWang_SAP
29分钟前
5
0
deepin中配置robot framework环境

本文永久更新地址:https://my.oschina.net/bysu/blog/2989005 【若要到岸,请摇船:开源中国 不最醉不龟归】 1.在终端中输入pip,回车,如果提示没有该命令,则先安转pip sudo apt-get inst...

不最醉不龟归
今天
7
0
OSChina 周日乱弹 —— 钱不还,我就当你人不在了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享Bigleaf的单曲《小鹿》 《小鹿》- Bigleaf 手机党少年们想听歌,请使劲儿戳(这里) 周日在家做什么? 做手工呀, @poorfis...

小小编辑
今天
184
5
EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
22
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部