1

我有一个使用 GWT-RPC 调用我的 REST 服务的 GWT 客户端。为什么其中一些评论将 GWT-RPC 与 REST 相提并论,就好像您必须选择一个或另一个?我在客户端上同时使用... GWT-RPC,它会访问 REST 服务。我想使用替代方案并放弃 GWT-RPC。为什么?它很慢(与我的 Flex 客户端相比,它提供了相同的服务)。我检查了 RestyGWT,但它的文档很棒(讽刺)听起来像是我需要构建我的 RestyGWT 客户端可以访问的 RestyGWT SERVICE。哎呀,不,谢谢。我的服务完成了。我真的不想碰它。所以听起来一种可能的替代方法是从我的服务生成一个客户端库,并在我的 GWT 客户端中使用它以及 RequestBuilder 来处理 JSON 到 java 对象的编码/解码(并希望获得改进的性能)。如果这不削减它,

4

2 回答 2

4

看看Errai JAX-RS来构建“REST”客户端(几乎)就像使用 GWT-RPC 一样容易。

于 2013-07-08T22:12:29.013 回答
1

GwtQuery autobeansajax是用于使用 REST 的gwt-autobeans和 gwt-requestbuilder(以及其他 json 解决方案,如 erray、resty)的轻量级客户端替代品。

它基于 jquery api,但已完全用 java 重写,利用了 jquery 的简单性和 gwt 性能。

IMO,它是使用 3party 服务(xml、json、jsonp 等)的最佳选择之一。它提供了一种简单的语法,以及许多特性,如Promise(在 1.4.0-SNAPSHOT 上可用)等。

这是一个如何使用 json rest 服务并将其映射到 java bean 的示例。如您所见,它很简单,性能非常好。

// Let GQuery generator wrap json to java
// there is a generator for xml services as well.
public static interface MyBean extends JsonBuilder {
  long getId();
  String[] getTags();
  String getTitle();
}

public void onModuleLoad() {
  // Configure a JSON Ajax request
  Settings rq = Ajax.createSettings()
    .setUrl("rest_service.js")
    .setType("post") // options: get post put delete head
    .setDataType("json") // send and read json data
    .setData($$("foo: bar")); // Your JavaScriptObject

  // last GQuery Ajax returns a chainable Promise which makes the code more
  // readable instead of dealing with callback parameters
  Ajax.ajax(rq)
    .done(new Function() {
      public void f() {
        // You can inspect arguments with this
        System.out.println(dumpArguments());

        // Create the bean, and wrap the json object read
        MyBean b = GWT.create(MyBean.class);
        b.load(arguments(0));

        // toString in JsonBuilder returns the json string
        System.out.println(b.toString());
      }
    })
    .fail(new Function() {
      public void f() {

      }
    });
}
于 2013-07-10T16:24:25.383 回答