扩展RequestContext的接口是否支持GWT RequestFactory?

时间:2011-08-28 01:18:59

标签: java gwt requestfactory

我的许多服务都是暴露DAO的。所以我为这些服务创建了一个接口:

public interface DAORequestContext<T extends SRSProxyBase> extends RequestContext {
    Request<T> find(Long id);

    Request<T> load(Long id);

    Request<T> save(T id);
}

但是在扩展此接口时(在我的RequestFactory中没有注释):

public interface SafeRideRequestFactory extends RequestFactory {
    public UserService userService();

    @Service(value = UserDAO.class, locator = DAOServiceLocator.class)
    interface UserService extends DAORequestContext<SRSUserProxy> { }
}

我得到运行时异常:

[ERROR] org.saferide.shared.service.DAORequestContext has no mapping to a domain type (e.g. @ProxyFor or @Service)
[ERROR] The type org.saferide.shared.service.DAORequestContext must be annotated with a @Service or @ServiceName annotation
[ERROR] The RequestContext type org.saferide.shared.service.DAORequestContext did not pass validation
[ERROR] Unexpected error
com.google.web.bindery.requestfactory.server.UnexpectedException: The RequestContext type org.saferide.shared.service.DAORequestContext did not pass validation

是否只允许RequestContext的直接后代?有没有人碰到这个?

1 个答案:

答案 0 :(得分:1)

请参阅http://code.google.com/p/google-web-toolkit/issues/detail?id=5807及相关的http://code.google.com/p/google-web-toolkit/issues/detail?id=6234http://code.google.com/p/google-web-toolkit/issues/detail?id=6035

这实际上取决于您正在使用的GWT的版本,并且它仍在改进中。你最好在它发布时使用GWT 2.4(此外,“验证”将在编译时而不是运行时完成)