大家好,
我遇到了gwtp框架的rest-dispatch模块的实现问题。
如果我遵循当前的documentation,那么定义服务提供的资源接口应如下所示:
@Path(FOO)
@Produces(MediaType.APPLICATION_JSON)
public interface FooResource {
@GET
RestAction<FooDTO> getFoo();
}
在客户端(没有代理扩展名):
@Inject RestDispatch dispatcher;
@Inject FooResource fooResource;
...
dispatcher.execute(fooResource.getFoo(), new AsyncCallback<FooDTO>() {
@Override
public void onFailure(Throwable throwable) {
}
@Override
public void onSuccess(FooDTO fooDto) {
}
});
...
问题
RestDispatch正在等待返回RestAction的方法,但由于RestService接口已从1.5版本中删除:
我如何实现FooResource?
此外
在carstore示例项目中,使用RestAction的唯一资源是: https://github.com/ArcBees/GWTP-Samples/blob/master/carstore/src/main/java/com/gwtplatform/carstore/shared/api/StatisticsResource.java
但它的实现,实际上不是那种情况下的实现: https://github.com/ArcBees/GWTP-Samples/blob/master/carstore/src/main/java/com/gwtplatform/carstore/server/api/StatisticsResourceImpl.java
我应该遵循这个例子,未实现的接口的目的是什么?
我认为我的问题非常具体,可能主要是针对gwtp的作者。
我提前感谢那些愿意回应的人。
答案 0 :(得分:2)
rest-dispatch是一个客户端库,描述服务的接口不能在服务器端使用。 我试图做一些GWTP的作者不打算做的事情。
然而,如果你想在服务器端使用接口,DelegateResource扩展是一个解决方案。它有一个缺点:能够在客户端进行类型安全回调。
进一步说,这是我在github上与团队进行的交流: https://github.com/ArcBees/GWTP-Samples/issues/92