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

时间:2011-02-24 04:04:35

标签: 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);
    InstanceRequest<ProxyForDAO, Long> persist();
}

我在public Long persist()实现中定义DAO,因为gwt docs say,“在服务器上,实例方法必须实现为实体类型中的非静态方法,”但请求工厂似乎无法找到它:

SEVERE: Could not find any methods named persist in com.activegrade.server.data.Service Feb 23, 2011 10:03:02 PM com.google.gwt.requestfactory.server.ServiceLayerDecorator die

如何在Service中实现实例方法?我不知道如何改造InstanceRequest。我是否需要以某种方式将DAO类连接到Service,以便代码生成器知道在Service中查找大多数方法但跳过DAO InstanceRequest来电?

1 个答案:

答案 0 :(得分:2)

ASAIK这是不可能的,因为InstanceRequest方法绑定到@Service注释中指定的类。使用Request方法,可以使用定位器为一个服务类提供多个数据类的方法。但是根据我对请求工厂的理解,使用InstanceRequest方法是不可能的。另请参阅此项目,该项目使用定位器,并在一个位置使用方法:http://code.google.com/p/listwidget/

编辑:我在更新/评论后重写了答案。