GWT RequestFactory:在单独的服务中实现InstanceRequest方法

GWT RequestFactory:在单独的服务中实现InstanceRequest方法,gwt,requestfactory,Gwt,Requestfactory,我正在使用一个独立于DAO的类来处理访问请求,但我不知道如何实现InstanceRequest方法: public class Service { public static DAO findDAO(Long id); } @Service(Service.class) public interface DAORequestContext extends RequestContext { Request<ProxyForDAO> findDAO(Long id);

我正在使用一个独立于DAO的类来处理访问请求,但我不知道如何实现InstanceRequest方法:

public class Service
{
    public static DAO findDAO(Long id);
}

@Service(Service.class)
public interface DAORequestContext extends RequestContext
{
    Request<ProxyForDAO> findDAO(Long id);
    InstanceRequest<ProxyForDAO, Long> persist();
}
公共类服务
{
公共静态DAO findDAO(长id);
}
@服务(Service.class)
公共接口DAORequestContext扩展了RequestContext
{
请求findDAO(长id);
InstanceRequest persist();
}
我在我的
DAO
实现中定义了
public Long persist()
,因为“在服务器上,实例方法必须作为实体类型中的非静态方法实现”,但请求工厂似乎找不到它:

SEVERE:在com.activegrade.server.data.Service中找不到任何名为persist的方法
2011年2月23日晚上10:03:02 com.google.gwt.requestfactory.server.servicelayerdercorator die


如何在
服务
中实现实例方法?我不知道如何转换
InstanceRequest
。我是否需要以某种方式将
DAO
类连接到
服务
,因此,代码生成器知道在
Service
中查找大多数方法,但要跳过
DAO
进行
InstanceRequest
调用?

ASAIK这是不可能的,因为
InstanceRequest
方法绑定到
@Service
注释中指定的类。使用
Request
方法,可以使用定位器为多个数据类和一个服务类提供一个方法。但从我对请求工厂的理解来看,这在
InstanceRequest
方法中是不可能的。另请参见此项目,该项目使用定位器,方法位于一个位置:

编辑:我在下面的更新/和评论之后重写了答案。

我重写了示例-我在RequestContext声明中使用了代理,但在原始问题中写错了。我已经为另外两种类型的DAO/代理正确工作了RequestFactory;这是我第一次在DAO类之外使用服务。重新。
persist()
方法:如何在
Service
类中定义persist()方法?我不知道如何在
DAO
之外转换
InstanceRequest
方法。文档中说,“在服务器上,实例方法必须作为实体类型中的非静态方法来实现”,但是如何连接
DAO
Service