GWT RPC

2025年3月17日 | 阅读 3 分钟

RPC (远程过程调用) 帮助客户端与服务器通信。 RPC 是从类中调用方法的过程,但是,这个过程的唯一区别是该类位于服务器上,但实际上不是客户端程序的一部分。

RPC 存在一个问题,因为 JavaScript 在 Web 浏览器中运行,并且浏览器中的 RPC 调用会挂起浏览器,直到收到响应。

为了避免浏览器挂起,GWT RPC 调用被设置为“异步”,并且浏览器在等待响应时不会挂起。


GWT RPC 机制

GWT RPC 的实现基于 Java Servlet 技术。 从客户端调用的服务器端代码通常被称为服务,而远程过程调用被称为调用服务。

下面给出了 GWT 应用程序中的 RPC 实现。

GWT Rpc 1

创建服务

服务在客户端被称为一个接口,它定义了所有服务方法。 它位于 client-package 下,因为服务在客户端可用。

1) 定义服务接口: 我们将创建一个客户端 Java 接口,该接口扩展了 RemoteService 接口,以开发一个新的服务接口。

SampleService.java

2) 定义异步服务接口: 除非在 Async 接口中定义了 void 作为返回类型,否则上述服务将产生错误。 这个接口应该有一个 Async 服务的回调对象。 Async 接口的名称应该与服务接口相同,后跟 Async。

SampleServiceAsync.java

3) 异步回调和错误处理: 此接口实现两个方法 OnSuccessOnFailure。 在这里,该类从服务器接收回调并提供其功能。

SampleCallback.java


实现服务

实现服务以执行一些处理以响应客户端请求。 服务实现基于 Servlet 架构。

1) 定义服务接口实现: GWT 服务必须扩展 RemoteServiceServlet 类,并且应该实现相关的服务接口。 它扩展了 RemoteServiceServlet 而不是 HttpServlet。 数据的序列化由 RemoteServiceServlet 自动处理。

SampleServiceImpl.java

2) 更新服务条目: 在这里,我们更新 web.xml 中的条目,我们在其中定义 servlet 并映射 URL。

web.xml

编译文件:Sample WebApplicaion.java

输出

GWT RPC 2
GWT RPC 3
下一主题GWT 面板