【发布时间】:2012-05-04 14:00:18
【问题描述】:
我是一名经验丰富的 Java 开发人员,但对 GWT 很陌生。
考虑一个基于第 3 方 http POST 的 webservices api,它不完全基于 REST,因为除其他外,还有 servlet 配置来调用这些服务。我正在构建 gwt 组件来扩展基本 gwt 组合,并使用这些 3rd 方数据服务来获取/改变数据。
在普通的 Java 世界中,我会在这些服务上构建一个 REST 包装器,并通过 JaxB Xml/Json 将它们公开为 Pojos。然而,在 GWT 中,考虑到所需的序列化,我读到 GWT-RPC 将是最快的。预计数据会很大(数千个,分页)。
在 3rd 方数据服务和 gwt 客户端组件之间设计“桥梁”的最佳方式是什么?
- 我排除了 RequestFactory,因为我们有一个由第三方提供的自定义 servlet,用于获取 Web 服务。
- 添加一个 rest 包装器会添加一个感觉太重的第 3 层间接(第 3 方 api+rest+gwt-rpc 序列化)
关于低延迟设计的建议,我不必为每个服务调用 (pojo) 编写太多包装类?
我想在服务器端考虑 jaxb,将模式作为新合约,并将它们转换为 JSON 用于 gwt-client。
【问题讨论】:
-
值得指出的是,RPC 与 RF 一样,需要自己的 servlet,尽管您将其扩展为提供方法而不是使用它来引用服务方法和实体。
-
请注意Same origin policy,它需要从同一服务器加载 GWT JavaScript,因为您希望稍后与 AJAX 通信。仅出于这个原因,您可能需要一个额外的服务器端层。