我有一个使用 GWT-RPC 调用我的 REST 服务的 GWT 客户端。为什么其中一些评论将 GWT-RPC 与 REST 相提并论,就好像您必须选择一个或另一个?我在客户端上同时使用... GWT-RPC,它会访问 REST 服务。我想使用替代方案并放弃 GWT-RPC。为什么?它很慢(与我的 Flex 客户端相比,它提供了相同的服务)。我检查了 RestyGWT,但它的文档很棒(讽刺)听起来像是我需要构建我的 RestyGWT 客户端可以访问的 RestyGWT SERVICE。哎呀,不,谢谢。我的服务完成了。我真的不想碰它。所以听起来一种可能的替代方法是从我的服务生成一个客户端库,并在我的 GWT 客户端中使用它以及 RequestBuilder 来处理 JSON 到 java 对象的编码/解码(并希望获得改进的性能)。如果这不削减它,
问问题
2091 次
2 回答
4
看看Errai JAX-RS来构建“REST”客户端(几乎)就像使用 GWT-RPC 一样容易。
于 2013-07-08T22:12:29.013 回答
1
GwtQuery autobeans和ajax是用于使用 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 回答