0

我是一位经验丰富的 Java 开发人员,但对 GWT 很陌生。

考虑一个基于第 3 方 http POST 的 web 服务 api,它不完全基于 REST,因为除其他外,还有 servlet 的配置来调用这些服务。我正在构建扩展基本 gwt 组合的 gwt 组件,并使用这些 3rd 方数据服务来获取/改变数据。

在普通的 java 世界中,我会在这些服务上构建一个 REST 包装器,并通过 JaxB Xml/Json 将它们公开为 Pojos。然而,在 GWT 中,考虑到所需的序列化,我读到 GWT-RPC 将是最快的。预计数据会很大(数千个,分页)。

设计 3rd 方数据服务和 gwt 客户端组件之间的“桥梁”的最佳方式是什么?

  1. 我排除了 RequestFactory,因为我们有一个由第三方提供的自定义 servlet 来获取 web 服务。
  2. 添加一个 REST 包装器会添加一个感觉太重的第 3 层间接(第 3 方 api+rest+gwt-rpc 序列化)

关于低延迟设计的建议,我不必为每个服务调用(pojo)编写太多的包装类?

我想在服务器端考虑 jaxb,将模式作为新合同,并将它们转换为用于 gwt-client 的 JSON。

4

2 回答 2

0

我的建议是使用 Spring RestTemplate、Gwt-RPC 并拥有一个 RemoteServiceServlet/Spring 桥——这将通过来自服务器客户端的 POJO 和一个干净的层为您提供 RPC 调用以与您的外部 Web 服务进行通信。

这将是轻量级和干净的..

于 2012-05-04T15:50:34.997 回答
0

我在服务器端使用 RestEasy,它使用 Hibernate JPA 访问数据库。稍加修改,我应该能够切换到 Datanucleus JPA。

我在客户端使用 RestyGWT。

仔细考虑 DTO,我能够 - 在服务器和客户端之间共享相同的 DTO - 在服务器和客户端之间共享相同的 REST 接口(在服务器端 REST 接口上运行脚本以将返回类型转换为异步回调之后)。

将多个 GWT 应用程序集成到一个可插拔平台中。

目前,我还在尝试将 JPA DTO 与 REST DTO 合并,以便在服务器、数据库和客户端之间拥有一组 POJO。因此,每个 DTO POJO 都会混合使用 JAX-RS、JAXB、Jackson JSON 和 JPA 注释。

为了减少不必要的客户端-服务器流量,我使用 JSP 作为 GWT 托管文件与 GWT Dictionary 类一起将所有特定于会话的会话静态信息传输到客户端。

于 2012-05-06T21:13:49.283 回答