【问题标题】:GWT RequestFactory: implementing InstanceRequest methods in separate servicesGWT RequestFactory:在单独的服务中实现 InstanceRequest 方法
【发布时间】:2011-02-26 01:08:56
【问题描述】:

我正在使用一个独立于我的 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 实现中定义了public Long persist(),因为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 调用?

【问题讨论】:

    标签: gwt requestfactory


    【解决方案1】:

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

    编辑:我已经根据下面的更新/评论重写了答案。

    【讨论】:

    • 我重写了这个例子——我在 RequestContext 声明中使用了代理,但在我原来的问题中写错了。对于另外两种类型的 DAO/代理,我的 RequestFactory 可以正常工作;这是我第一次在 DAO 类本身之外使用服务。回覆。 persist() 方法:如何在Service 类中定义persist() 方法?我不知道如何在DAO 之外转换InstanceRequest 方法。文档说,“在服务器上,实例方法必须作为实体类型中的非静态方法实现”,但我如何连接DAOService
    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多